字符设备驱动——申请、创建、应用
9页1、1、申请设备号/ 1、注册获取设备号/ 2、初始化设备/ 3、操作设备 file_operations open release read write ioctl/ 4、两个宏定义 module_init module_exit / 5、注册设备号 register_chrdev_region/ 6、cdev_init 初始化字符设备/ 7、cdev_add 添加字符设备到系统1)向系统申请主设备号int register_chrdev(unsigned int major, const char * name, const struct file_operations * fops)/参数:/1、major:主设备号/ 设备号(32bitdev_t)=主设备号(高12bit) + 次设备号(低20bit)/ 主设备号:表示一类设备(如:camera)/ 次设备号: 表示一类设备中某一个(如:前置camera/后置camera)/ 0 -动态分配 ; 250 - 给定整数,静态指定/2、name: 描述设备信息,可自定义/ 在目录/proc/devices列举出了所有的已经注册的设备/
2、3、fops: 文件操作对象/ 提供open, read,write/返回值:成功-0,失败-负数2)释放设备号void unregister_chrdev(unsigned int major, const char * name)3)例:主设备号的申请chr_drv.c加载驱动前:加载驱动后:2、创建设备节点1)手动创建缺点/dev/目录中文件都是在内存中,断电后/dev/文件就会消失 mknod /dev/设备名 类型 主设备号 次设备号 (主设备号要和驱动中申请的主设备号保持一致) 比如: mknod /dev/chr0 c 250 0 eg: rootfarsight drv_module# ls /dev/chr0 -l crw-r-r- 1 0 0 250, 0 Jan 1 00:33 /dev/chr02)自动创建通过udev/mdev机制struct class *class_create(owner, name)/创建一个类/参数:/1、owner:THIS_MODULE/2、name :字符串名字,自定义/返回:/ 返回一个class指针创建一个设备文件:/创建一
3、个设备文件struct device *device_create(struct class * class, struct device * parent, dev_t devt, void * drvdata, const char * fmt,.)/参数:/1、class结构体,class_create调用之后的返回值/2、表示父亲,一般直接填NULL/3、设备号类型 dev_t/4、私有数据,一般直接填NULL/5/6、表示可变参数,字符串,表示设备节点名字设备号类型:dev_t devt #define MAJOR(dev) (unsigned int) (dev) MINORBITS) /获取主设备号 #define MINOR(dev) (unsigned int) (dev) & MINORMASK) /获取次设备号 #define MKDEV(ma,mi) (ma) MINORBITS) | (mi) /生成设备号销毁设备文件:void device_destroy(devcls, MKDEV(dev_major, 0);/参数:/1、class结构体,class_c
《字符设备驱动——申请、创建、应用》由会员安****分享,可在线阅读,更多相关《字符设备驱动——申请、创建、应用》请在金锄头文库上搜索。
Linux驱动的层次关系与分类
Linux驱动的层次关系与分类
字符设备驱动 —— 字符设备驱动框架
字符设备驱动——申请、创建、应用
输入子系统的作用与框架
字符设备驱动——申请、创建、应用
字符设备驱动 —— 字符设备驱动框架
驱动开发之开发步骤
输入子系统的作用与框架
驱动开发之开发步骤
创建 Visual C++ 源文件并在命令行上对其进行编译
Windows驱动开发需要注意的细节
在命令行上编译本机 C++ 程序的先决条件
C++如何打开“开发人员命令提示”
Windows 11 WHQL认证的重要性
Windows10旧版本驱动数字签名更新的必要性
通过WHQL认证的产品可以微软官网查询了
怎样判断一个驱动程序是否通过微软WHQL认证
微软发布Windows 10 21H1 硬件兼容计划(WHCP)(1)
申请USB VENDOR ID 的意义
2024-03-07 87页
2023-12-26 16页
2023-12-26 28页
2023-07-21 7页
2023-07-21 3页
2023-07-21 14页
2023-07-21 3页
2023-07-21 30页
2023-07-21 34页
2023-07-21 15页