linux设备驱动程序--类class的实现
2023-09-27 14:28:47 时间
.name = "test-cla", //将类的名字设置为test-cla
.owner = THIS_MODULE, //该类的拥有者为这个模块
ret = register_chrdev(major, DEV_NAME, fops); //如果注册不成功返回错误值并撤销类的实现 if(IS_ERR_VALUE(ret)) class_unregister( cla); return ret; major = ret; //printk("major = %d\n", major); //申请主设备号与次设备号 dev.devt = MKDEV(major, minor); //将设备进行注册 ret = device_register( dev); //如果设备注册不成功,撤销类设备注册并解除字符设备驱动的注册 if(IS_ERR_VALUE(ret)) class_unregister( cla); unregister_chrdev(major, DEV_NAME); return ret; return 0; void test_exit(void) printk("test exit\n"); //解除字符设备的注册 unregister_chrdev(major, DEV_NAME); //解决类设备注册 device_unregister( dev); class_unregister( cla); module_init(test_init); module_exit(test_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("yangyx"); MODULE_VERSION("1.1");
Linux设备驱动程序学习----1.设备驱动程序简介 Linux设备驱动程序学习----1.设备驱动程序简介设备驱动程序简介更多内容请参考Linux设备驱动程序学习----目录 简介 Linux系统的优点是,系统内部实现细节对所有人都是公开的。Linux内核由大量复杂的代码组成,设备驱动程序可以作为进入Linux内核世界大门的切入口。
《精通Linux设备驱动程序开发》——导读 在Linux内核源代码树提供的各个子系统中,drivers/目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的Linux内核支持多达70余种设备驱动程序。
《精通Linux设备驱动程序开发》——1.8 可加载的模块 内核模块减小了内核的大小,并缩短了开发——编译——测试的周期。为了让一次修改生效,你仅仅需要重新编译特定的模块并重新加载它。在第21章中,我们将学习模块调试技术。
《精通Linux设备驱动程序开发》——1.7 编译内核 menuconfig是内核配置菜单的文本界面,使用make xconfig可以产生一个图形界面。所选择的配置信息被存放在内核源码树根目录的.config文件中。如果不想从头开始进行配置,可以使用 arch/your-arch/defconfig作为起点或者若你的体系架构支持多个平台,也可以用)arch/your-arch/ configs/your-machine_defconfig文件作为起点。
《精通Linux设备驱动程序开发》——1.6 查看源代码 drivers。这个目录包含了大量设备类和外设控制器的驱动,包括字符、串口、内置集成电路(I)、个人计算机存储卡国际联盟(PCMCIA)、外围组件互连(PCI)、通用串行总线(USB)、视频、音频、块、集成驱动电子设备(IDE)、小型计算机系统接口(SCSI)、CD-ROM、网络适配器、异步传输模式(ATM)、蓝牙和内存技术设备(MTD)等。
morixinguan ITGEGE在线教育嵌入式开发讲师。 CSDN博客专家、CSDN-Linux特邀编辑、CSDN博乐、CSDN学院讲师,目前从事嵌入式开发领域,从事与单片机,Linux,android相关的产品开发。
ret = register_chrdev(major, DEV_NAME, fops); //如果注册不成功返回错误值并撤销类的实现 if(IS_ERR_VALUE(ret)) class_unregister( cla); return ret; major = ret; //printk("major = %d\n", major); //申请主设备号与次设备号 dev.devt = MKDEV(major, minor); //将设备进行注册 ret = device_register( dev); //如果设备注册不成功,撤销类设备注册并解除字符设备驱动的注册 if(IS_ERR_VALUE(ret)) class_unregister( cla); unregister_chrdev(major, DEV_NAME); return ret; return 0; void test_exit(void) printk("test exit\n"); //解除字符设备的注册 unregister_chrdev(major, DEV_NAME); //解决类设备注册 device_unregister( dev); class_unregister( cla); module_init(test_init); module_exit(test_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("yangyx"); MODULE_VERSION("1.1");
Linux设备驱动程序学习----1.设备驱动程序简介 Linux设备驱动程序学习----1.设备驱动程序简介设备驱动程序简介更多内容请参考Linux设备驱动程序学习----目录 简介 Linux系统的优点是,系统内部实现细节对所有人都是公开的。Linux内核由大量复杂的代码组成,设备驱动程序可以作为进入Linux内核世界大门的切入口。
《精通Linux设备驱动程序开发》——导读 在Linux内核源代码树提供的各个子系统中,drivers/目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的Linux内核支持多达70余种设备驱动程序。
《精通Linux设备驱动程序开发》——1.8 可加载的模块 内核模块减小了内核的大小,并缩短了开发——编译——测试的周期。为了让一次修改生效,你仅仅需要重新编译特定的模块并重新加载它。在第21章中,我们将学习模块调试技术。
《精通Linux设备驱动程序开发》——1.7 编译内核 menuconfig是内核配置菜单的文本界面,使用make xconfig可以产生一个图形界面。所选择的配置信息被存放在内核源码树根目录的.config文件中。如果不想从头开始进行配置,可以使用 arch/your-arch/defconfig作为起点或者若你的体系架构支持多个平台,也可以用)arch/your-arch/ configs/your-machine_defconfig文件作为起点。
《精通Linux设备驱动程序开发》——1.6 查看源代码 drivers。这个目录包含了大量设备类和外设控制器的驱动,包括字符、串口、内置集成电路(I)、个人计算机存储卡国际联盟(PCMCIA)、外围组件互连(PCI)、通用串行总线(USB)、视频、音频、块、集成驱动电子设备(IDE)、小型计算机系统接口(SCSI)、CD-ROM、网络适配器、异步传输模式(ATM)、蓝牙和内存技术设备(MTD)等。
morixinguan ITGEGE在线教育嵌入式开发讲师。 CSDN博客专家、CSDN-Linux特邀编辑、CSDN博乐、CSDN学院讲师,目前从事嵌入式开发领域,从事与单片机,Linux,android相关的产品开发。
相关文章
- linux常用查看硬件设备信息命令
- 【Linux开发】linux设备驱动归纳总结(七):1.时间管理与内核延时
- 【Linux】linux设备驱动归纳总结
- 【Linux开发】linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现
- [svc]linux正则实战(grep/sed/awk)
- [usb]linux系统下wireshark抓包usb设备通信报文
- 查看Linux系统的USB设备
- Linux学习笔记之curl模拟get/post/delete/put请求
- 【转贴】linux 终端报Message from syslogd
- Linux下将PHP添加到环境变量,将Mysql加入环境变量。
- Linux设备模型:基础篇
- 常用DOS命令和Linux命令
- [Linux]scp 命令远程复制
- linux驱动编写(pwm驱动)
- Linux学习易错点-网络yum源的配置过程
- 105.网络安全渗透测试—[权限提升篇3]—[Linux劫持环境变量提权]
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十九)驱动进化之路:总线设备驱动模型
- 46.Linux-创建rc红外遥控平台设备,实现重复功能(2)
- 手把手教你写Linux设备驱动---中断(二)--tasklet实现(基于友善之臂4412开发板)
- Linux设备驱动编程---miscdevice杂类设备的使用方法
- USB总线-Linux内核USB3.0设备控制器之UDC驱动分析(六)
- Linux驱动开发—设备树开发详解