您的位置:首页 > 运维架构 > Linux

ELDD读书笔记:第五章 字符设备驱动程序

2017-12-07 17:18 239 查看
字符设备驱动程序基础
驱动标识符

字符驱动程序基本模块

数据流

设备实例

检测数据可用性

和并行端口交互

RTC子系统

伪字符驱动设备

混杂驱动程序

字符设备驱动程序警告

查看源代码

0 字符设备驱动程序基础

[驱动标识符]

c:字符驱动设备
b:块设备
l:符号链接
bash>ls -l /dev
total 0
驱动程序类型            主设备号|次设备号
crw-------  1 root root    5, 1 Jul 16 10:02 consle
...
lrwxrwxrwx  1 root root       3 Oct 6  10:02 cdrom->hdc
...
brw-rw      1 root disk    3, 0 Oct 1        hda
...
crw-------  1 root tty     4, 1 Oct 6  10:20 tty1


[字符驱动程序基本模块]

1 初始化例程init()。负责初始化设备并且将驱动程序和内核的其他部分通过注册函数实现无缝连接

2 入口函数集。如open()、read()、write()、ioctl()、llseek(),这些函数直接对应相应的I/O系统调用,由用户应用程序通过对应的/dev节点调用。

3 中断例程、底半部例程、定时器处理例程、内核辅助线程以及其他的组成部分。他们对于用户应用程序是透明的。

[数据流]

1 与特定设备相关的数据结构。此数据结构保存着驱动程序使用的信息。

2 struct cdev,针对字符设备驱动程序的内核抽象。这个结构通常嵌入在前面讨论的特定设备结构中。

3 struct file_operations,包含所有设备驱动程序入口函数的地址。

4 struct file,包括关联/dev节点的信息。

1 设备实例

2 检测数据可用性

3 和并行端口交互

4 RTC子系统

5 伪字符驱动设备

6 混杂驱动程序

7 字符设备驱动程序警告

8 查看源代码

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux设备驱动