没有合适的资源?快使用搜索试试~ 我知道了~
Linux驱动程序开发-设备驱动模型
需积分: 9 11 下载量 58 浏览量
2010-12-17
00:59:55
上传
评论
收藏 65KB DOC 举报
温馨提示
试读
12页
Linux驱动程序开发-设备驱动模型 Linux2.6设备驱动模型的基本元素是Class、Bus、Device、Driver,下面我们分别介绍各个部分。
资源推荐
资源详情
资源评论
Linux 驱动程序开发 - 设备驱动模型初探
序言
从这一章开始,我们将详细的介绍 的设备驱动模型。 设备驱动模型是一个相当
复杂的系统,对于初学者来说真有些无从入手。而且更加困难的是,随着新的
的 , 的设备驱动模型总会有或大或小的变化,我们将尽量展现
的这种变化。
早期的 内核(版本 之前)并没有实现一个统一的设备模型,设备节点的创建一
般是 命令手动创建或利用 文件系统创建。早期的 发行版一般会采用手
动创建的方式预先把通常用到的节点都创建出来,而嵌入式系统则会采用 的方式。
起初 内核还支持 ,但从 开始,内核完全移除了 系统而采用的
的方式动态的创建设备节点。因此,新的 发行版都采用 的方式管理设备
节点文件。(关于 的详细信息,请参考:
)。
设备驱动模型的基本元素是 !、"、#$、#,下面我们分别介绍各
个部分。
Class 和 Class Device
驱动模型最基本的概念是设备及其类别,Linux 中使用 struct class 和 struct class_device 来管
理不同类别的设备。由于设备驱动模型是一个复杂的系统,我们还是从一个简单的例子开
始介绍,然后在逐步展开。其实实现设备节点的动态创建是一个很简单的事情,并不需要
太多的代码。我们修改我们的驱动初始化函数如下:
%$&$'
%#()*+,(--
$./
$$$0.$/
$$$0.$/
$...12
3
444/
4445$.$.167877--2/
44412
4443
44444441-$.$.9:-2/
4444444/
444;
444.$5$.$12/
4441.$55*<2
4443
44444441-$$9:-2/
44444445=(*>,(,/
4444444.$/
444;
444.$='56./
444.$='5?@AB.,>#<(/
4445$.1.$772/
44412
4443
44444441-$.9:-2/
4444444.$/
444;
444.$5$.$1?@AB.,>#<(7#()*+,(2/
4441AB.(CC1.$22
4443
44444445D?C.(CC1.$2/
4444444.$/
444;
444$.$.$1.$7*<77*<7#()*+,(2/
4441. 787E1. 22/
444$F1. 7#(G+<?.,BH7E1#(G+<?.,BH22/
4441-@I9:-2/
4448/
.$
444$.1.$2/
.$
444.$.1.$='72/
444/
;
$...12
3
444$.$.F1.$72/
444$.F1.$2/
444.$.1.$='72/
444$.1.$2/
4441-H FI:-2/
;
重新编译这个驱动程序,当加载这个驱动到内核中时,系统(一般是 hotplug 和 udev 系
统)就会自动的创建我们指定的设备名字:/dev/hello,同时,你也可以发现在 sysfs 系统中
添加了新的文件:/sys/class/hello/hello/。
当然并不需要把所有的代码都贴到这里,但是这样做可能更加清楚。我们把添加的代码显
示成蓝色,这样你可以清楚的看到代码的简单程度。这里主要用到了 class_create 和
class_device_create 函数,它们定义在<linux/device.h>头文件中。
$$0$.$1$07$$02/
$.F1$$0$2/
$$.$0$.$.$1$$0$7
444444444444444444$$.$07
444444444444444444.7
444444444444444444$$0$7
444444444444444444$$072
444444444444444.. ..1117J7222/
$.$.F1$$0$7.2/
是通过设备与设备类来管理设备的,当你调用这些函数向系统注册设备及其类的时
候,内核会自动的在 F 文件系统中创建对应的文件。如果想了解更多的关于设备及其
类的函数接口,请你阅读 的源文件($$ 头文件
和 $$ 实现文件)。这里简单说明$.$.$ 函数,它的最后
一个参数是一个变参,类似于 函数参数,用于指定添加设备的名称也就是显示在
目录下设备文件名称。
创建的 $.ce 设备会自动注册到系统中,这样对于给定的设备,系统会自动找到匹
配的设备驱动。
剩余11页未读,继续阅读
资源评论
zhenwenxian
- 粉丝: 797
- 资源: 773
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功