LDD3笔记
文章平均质量分 71
engineer00
这个作者很懒,什么都没留下…
展开
-
LDD3笔记——字符设备驱动简单分析
在学习字符设备驱动时,尝试理解下列问题。1、 什么是字符设备?什么是字符设备驱动?这是两个完全不同的概念,字符设备是以字节为单位进行顺序访问的一类设备的总称,常见的字符设备有键盘、串口、控制台等。而字符设备驱动就是提供字符设备操作的机制。2、 字符设备的主设备号,次设备号,内核通过主设备号找到字符设备,而次设备号通过什么途径传递给驱动模块代码使用。3、 怎样创建设备节点?mknod怎么使用4、 主设备号可以预先固定,也可以动态获得;驱动中怎么注册字符设备,内核会做些什么?5、字符设备的file_oper原创 2011-02-15 17:42:00 · 453 阅读 · 0 评论 -
理解scull设备
<br />scull设备是一个操作内存的字符设备,不是真正的设备,只是向内核注册为字符设备,并使用内存来存取数据。<br />当用户向其中写数据时,它就申请空闲内存来存放用户数据;当用户读取其数据时,便按顺序读取数据。<br />接下来两个结构贯穿整个驱动,理解它是很必要的。<br />struct scull_qset {<br />void **data;<br />struct scull_qset *next; <br />};<br />struct scull_dev {<br />struc转载 2011-02-15 17:51:00 · 453 阅读 · 0 评论 -
LDD3笔记——scull模块加载与卸载函数
<br /> 在字符设备驱动模块加载函数中应实现设备号的申请和cdev的注册,而在卸载函数中应实现设备号的释放和cdev的注销。<br /> <br />int scull_init_module(void)<br />{<br /> int result, i;<br /> dev_t dev = 0;<br />/* [1]分配设备编号 */<br /> if (scull_major) { /* 预先自己指定了主设备号 */<br /> dev = MKDEV(scull_m原创 2011-02-15 17:02:00 · 433 阅读 · 0 评论