- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux的Platform驱动模型
Linux的
Platform驱动模型
(大学课堂 讲义)
bjtea_one
bjtea_one@163.com
2012.5
在LINUX2.6之后,驱动设备中引入Platform机制的作用为:
(1)将所有设备都挂接到一个虚拟的总线上,方便sysfs节点和设备电源的管理;
(2)可以在BSP (Board Support Package)中定义设备、资源,机器相关的配
置信息,而在驱动中,只需通过API来获取资源和数据。从而隔离了BSP与驱动,使
驱动具有更好的扩展性和跨平台性。
基本内容
1、 sysfs文件系统
虚拟文件系统,用于向用户空间展示设备模型中各种组件的层次关系
(拓扑结构),可以由用户空间存取;
2、platform总线
虚拟设备总线,用以将设备和驱动联系到一起,属于Linux中bus的一种,
类型为platform_bus_type ;
3、platform设备
挂接在platform总线下的设备或资源,类型为platform_device ;
4、platform驱动
挂接在platform总线下与某种设备(资源)相对应的驱动,类型为
platform_driver
5、平台设备小结
1.1 sysfs文件系统
• sysfs文件系统是一个处于内存中的虚拟文件系统,它把实际连接到系统上的
设备和总线组织成一个分级的文件,利用kobject对象构造出层次结构。
• 帮助用户可以一个简单文件系统的方式来观察系统中各种设备的拓扑结构。用
户空间的程序同样可以利用这些信息以实现和内核的交互。因此,可说sysfs
是一个用户空间的文件系统,用来表示内核中kobject对象的层次结构。
• 每个在内核中注册的kobject对象都对应于sysfs文件系统中的一个目录,系
统中的设备组织成层次结构。每个设备在sysfs中都有唯一对应的目录。
• 借助属性对象,kobject可用导出文件的方式,让用户读取或写内核变量。
• 一个符合linux驱动模型的设备与驱动必须挂靠在一根总线上,无论它是实际
存在的还是虚拟的总线;
• 其顶层目录主要有:
1)block 目录:包含所有的块设备;
2)devices 目录:包含系统所有的设备,并根据设备挂接的总线组织层次结构
3)bus 目录:包含系统中所有的总线类型
4)module 目录:包括内核中所有已注册的内核模块
5)class 目录:系统中的设备类型(如网卡设备,声卡设备或用户自定义类等)
2.2 sys文件结构示意
举例:对应平台设备my_ts和其
对应的驱动my_ts,导入内核模块 sys
my_test.ko后:
bus 总线的一种 devices
bus_register
注册 platform device_register platform
(总线目录) 注册 (平台设备目录)
设备存放地
驱动存放地
drivers devices my_ts …
驱动目录 设备链接文件目录 设备目录 其它设备
……
my
文档评论(0)