摘要:
在上一篇中,我们介绍了有关简单字符设备驱动中那些简单但又必须要掌握的结构体和一些源码中核心的操作函数,这一节我们继续介绍有关源码部分的后续相关内容及测试使用的方法(在本文中同时也会给出完整的Makefile文件,方便大家调试)。 static const struct file_operations globalmem_fops ={ //这些就是上篇中所实现的所有操作该字符设备的函数接口,这些最终都会被用户程序中的open(),read()所调用 .owner= THIS_MODULE, .llseek = globalmem_llseek, .read = globalmem_read,. 阅读全文
摘要:
废话少说,先来介绍几个必须要知道的和字符设备有关的结构体,然后结合代码详细讲解。第一部分 必要的设备结构体1)linux 2.6内核中使用cdev结构体表示字符设备:struct cdev{ struct kobject kobj;//内嵌的kobject对象 struct module *owner;//所属模块 struct file_operations *ops;//文件操作结构体 struct list_head list; dev_t dev;//设备号,长度为32位,其中高12为主设备号,低20位为此设备号 unsigned int count;};可以使用下列... 阅读全文