设备驱动程序开发 二
来源:互联网 发布:mac pc 区别 编辑:程序博客网 时间:2024/05/02 00:41
接上一篇继续学习:
上一篇,我自己在调试的时候出现过小问题:第五步时 mknod 随便指定个主设备号,比如55,而不是系统给分配的250。这样当运行测试程序时就出问题了。
程序中: result = register_chrdev(0, "test", &test_fops);/*注册。对设备操作的整个接口*/,当主设备号默认为0时,表示由系统给分配。现在如果想在程序中自己这时就定义好设备号,可以将 0 改成你想要的数字即可,不过要先查一下这个设备号是不是已经存在了:cat /proc/devices。但这时还需要mknod 指定设备号。
当然还有更简单的 方法:不必mknod,让系统自动生成这些东西:
在test.c文件中声明两个类,class类的 *testdrv_class,class_device类的tesdrvt_class_dev:
static struct class *testdrv_class;
static struct class_device *testdrv_class_dev;
然后在init_modulet函数中创建这两个类:
testdrv_class = class_create(THIS_MODULE, "testdrv");
testdrv_class_dev = device_create(test_class, NULL, MKDEV(major, 0), NULL, "test");//(注意这个地方,内核之前的版本这里为:class_device_creat)
还要加个头文件:<linux/device.h>
- 设备驱动程序开发 二
- 设备驱动程序(二)
- 块设备驱动程序<二>
- (二十一) 设备驱动程序
- 块设备驱动程序<二>
- 开发WDM型USB设备驱动程序(二)
- 开发WDM型USB设备驱动程序(二)
- Linux驱动程序开发 - 设备驱动模型初探(二)
- 开发Linux设备驱动程序
- DOS设备驱动程序开发
- 设备驱动程序开发
- 字符设备驱动程序之二
- char 设备驱动程序(二)
- Linux设备驱动程序(二)
- USB设备驱动程序(二)
- WDM设备驱动程序开发平台
- WDM设备驱动程序开发平台
- Linux设备驱动程序开发入门
- Icenium:Doug Seven谈针对iOS与Android构建混合移动应用
- 孙鑫vc++ 8 对话框(2) 逃跑按钮的实现
- _variant_t与相关类型之间的转换 分享
- Tuxedo应用设计的经验
- C++中基类与派生类的复制控制
- 设备驱动程序开发 二
- 移动硬盘的选择与购买
- UIViewController加载和卸载过程
- log4j的默认level
- MapReduce编程练习(一)
- PHP 淘宝API发布产品 taobao.item.add
- Powershell - 卸载程序
- 使用X-UA-Compatible来设置IE8兼容模式
- Node.js学习笔记1.