linux设备驱动-总线设备和驱动_第1页
linux设备驱动-总线设备和驱动_第2页
linux设备驱动-总线设备和驱动_第3页
linux设备驱动-总线设备和驱动_第4页
linux设备驱动-总线设备和驱动_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、总线、设备和驱动罗苏笙2012.12.41. sysfs文件系统 sysfs文件系统是处于内存中的虚拟文件系统, 其把连接在系统上的设备和总线组织成为一个分级的目录及文件,它们可以由用户空间存取,向用户空间导出内核数据结构以及它们的属性。 其顶层的目录主要有: block、bus、class、devices、firmware、fs、 kernel、module、power 2、总线 总线是处理器和设备之间的通道,在设备模型中,所有的设备都通过总线相连,以总线来管理设备和驱动函数。总线用bus_type结构表示。 总线的注册有两个步骤:1)定义一个bus_type结构体2)调用函数bus_reg

2、ister注册总线。函数原型如下:int bus_register(struct bus_type *bus)总线删除时调用:void bus_unregister(struct bus_type *bus) 总线的注册和删除: 设置总线的属性后,会在对应的总线目录下增加了一个新的文件,通过对该文件的读写访问,触发相应的函数操作,从而实现/sys/的文件接口与内核设备模型的数据交互。总线属性总线属性的添加和删除设置总线属性有两个步骤:1)创建并初始化bus_attribute结构,使用宏BUS_ATTR(_name, _mode, _show, _store) 2)将bus_attibute添

3、加到指定的总线上,使用以下调用:int bus_create_file(struct bus_type *bus, struct bus_attribute *attr) 总线属性删除:void bus_remove_file(struct bus_type *bus, struct bus_attribute *attr) 2、设备 linux系统中每个设备都用一个device结构的表示,如下:设备注册和注销设备注册的步骤:1)定义结构体device。2)调用注册函数:int device_register(struct device *dev)设备注销函数:void device_unre

4、gister(struct device *dev)设备属性的添加和删除设置设备属性有两个步骤:1)创建并初始化device_attribute结构2)将device_attibute添加到指定的设备上,使用以下调用:int device_create_file(struct device *dev, struct device_attribute *attr) 设备属性的删除:void device_remove_file(struct device *dev, struct device_attribute *attr) 3、设备驱动设备驱动的结构体如下:驱动的注册步骤:1)定义驱动的结构

5、体device_driver。2)调用注册函数:int driver_register(struct device_driver *drv) 驱动注销函数:void driver_unregister(struct device_driver *drv) 驱动的注册和注销设置设备属性有两个步骤:1)创建并初始化device_attribute结构2)将device_attibute添加到指定的驱动函数上,使用以下调用:int driver_create_file(struct device_driver *drv, struct driver_attribute *attr) 如果不需要该属性

6、时,使用以下函数删除:void driver_remove_file(struct device_driver *drv, struct driver_attribute *attr)驱动属性的添加和删除4、总结属性结构体:xx_attribute。注册函数:xx_register。注销函数:xx_unregister。创建属性文件函数:xx_create_file。删除属性文件函数:xx_remove_file。其中xx可以是总线(bus)、设备(device)或者驱动函数(driver)。5、总线、设备和驱动的关系1)配对函数(match): int (*match)(struct device *dev, struct device_driver *drv);位于总线结构体bus_type中2)探测函数(probe):int (*probe) (struct de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论