【嵌入式】字符驱动开发框架
2016-08-07 17:38
113 查看
开发字符驱动时,应该有如下框架:
1.构建file_operation,
2.在结构体之前加入操作函数
3.写入入口和出口函数,入口函数的主要功能是注册结构体,出口函数反之。在这里,我们为了使系统自动注册,加入一些代码。
1.构建file_operation,
static struct file_operations second_drv_fops = { .owner = THIS_MODULE, .open = second_drv_open, .read = second_drv_write, };
2.在结构体之前加入操作函数
static int first_drv_open(struct inode *inode, struct file *file) { return 0; } ssize_t second_drv_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) { return 0; }
3.写入入口和出口函数,入口函数的主要功能是注册结构体,出口函数反之。在这里,我们为了使系统自动注册,加入一些代码。
static struct class *seconddrv_class; static struct class_device *seconddrv_class_dev;
static int second_drv_init(void) { major = register_chrdev(0, "key_drv", &second_drv_fops); seconddrv_class = class_create(THIS_MODULE, "seconddrv"); seconddrv_class_dev = class_device_create(seconddrv_class, NULL, MKDEV(major, 0), NULL, "xyz1"); /* /dev/xyz */ printk("register a char device: key_drv !\n"); return 0; } static int second_drv_exit(void) { unregister_chrdev(major, "key_drv"); class_device_unregister(seconddrv_class_dev); class_destroy(seconddrv_class); printk("unregister a char device: key_drv !\n"); return 0; } module_init(second_drv_init); module_exit(second_drv_exit); MODULE_LICENSE("GPL");
相关文章推荐
- 【嵌入式Linux驱动开发】三、字符设备驱动(二)
- 嵌入式学习-驱动开发-lesson2-LED字符设备驱动
- linux驱动开发之字符设备框架 -调用过程分析
- linux驱动开发之字符设备框架 - 实例
- 【嵌入式Linux驱动开发】三、字符设备驱动(一)
- 嵌入式学习-驱动开发-lesson1-字符设备驱动模型
- 第16章 驱动开发之字符设备驱动程序框架
- 11-S3C2440驱动学习(七)嵌入式linux-字符设备的另一种写法及RTC驱动程序分析和字符设备驱动框架总结
- linux驱动开发之字符设备--自动创建设备节点
- Linux 字符设备驱动开发基础(三)—— read()、write() 相关函数解析
- 在嵌入式学习困惑:做驱动开发还是做应用开发更有前途
- 手把手教你学linux驱动开发”OK6410系列之03---LED字符设备驱动
- linux分类驱动对字符设备框架压力的卸载
- 【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介
- 嵌入式 字符设备驱动经典示例
- linux驱动开发之字符设备--私有数据和container_of
- 嵌入式Linux驱动开发实战视频教程
- 面向领域驱动的企业级应用开发框架Apworks新版本发布
- linux ------ 字符设备驱动框架
- 嵌入式驱动开发之uboot---uboot 中的常见命令参数参数