第3章 总线设备驱动模型.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章总线设备驱动模型重点讲义

* 嵌入式操作系统 * 三、Platform驱动程序 3、平台设备 (2)平台设备注册 * 嵌入式操作系统 * 三、Platform驱动程序 3、平台设备 (3)设备资源 * 嵌入式操作系统 * 三、Platform驱动程序 设备资源——例 * 嵌入式操作系统 * 三、Platform驱动程序 4、平台驱动 (1)平台驱动描述 * 嵌入式操作系统 * 三、Platform驱动程序 4、平台驱动 (1)平台驱动注册 * 嵌入式操作系统 * 三、Platform驱动程序 4、平台驱动 (2)获取资源 * 嵌入式操作系统 * 总线设备驱动模型的意义不是一两句话就能够概括的。首先,总线设备模型是电源管理的基础,这里牵涉到suspend的一些概念不做深入;其次,总线设备模型将硬件与软件分离开来,因此硬件的差异性对上层来说是看不到的,我们需要做的就是告诉内核我的设备跟别人的有什么不同。很多具体的模型甚至提供了完整的读写等一些与设备交互的函数。这些工作的完成大大的减少了我们的工作量,驱动工作人员要完成的工作越来越少,更多的人可以专注于应用,这也就意味着开发周期的缩短,对于厂商来说周期的缩短意味着产品的更快上市也就意味着迅速抢占市场。因此我们要充分利用好内核源码。 三、Platform驱动程序 * 嵌入式操作系统 * 我所讲的内容绝大部分来自于韦东山的视频及配套教材,我只讲了一些我认为重要的细节,还有很多内容由于篇幅和水平的原因没有讲,比如说设备具体是如何添加到总线的设备链表、驱动又是如何添加到总线的驱动链表、设备和驱动具体是如何match的等等。想把这个模型完全搞懂非一日之功,需要长期的积累。 三、Platform驱动程序 * 嵌入式操作系统 * 第3章 总线设备驱动模型 一、KObject KSet 二、设备驱动模型 提纲 三、Platform驱动模型 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 1、大概思路: 本例是点亮板上任意一个led,根据总线设备模型,这需要两个文件 led_dev.c和led_drv.c,led_dev.c 主要负责硬件相关代码,如提供管脚接LED的GPIO地址,而led_drv.c主要负责获得设备文件提供的资源来构造文件操作集合fops 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 2、为platform_device提供资源 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 3、分配/设置platform_device 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 在led_drv.c里: 分配/设置platform_driver 咋眼一看,很简单,重点是led_probe和led_remove,可以在probe函数做任何事情,基于此例,我们在probe函数中: 获取设备资源ioremap;注册字符设备,提供读写函数; 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 细说led_probe: 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 接着细说led_probe: 如听众所想,注册字符设备很简单,这个时候应该都会了,-_-若还不会,那你对不起我 我也对不起你了,关键是设置led_fops 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 设置led_fops 四、Platform总线设备驱动之点灯 * 嵌入式操作系统 * 细说被应用程序write调用的led_write: 四、Platform总线设备驱动之点灯 * * 嵌入式操作系统 * 总线描述 二、设备驱动模型 * 嵌入式操作系统 * struct bus_type 中我们需要关注: struct kset devices 和 struct kset drivers ; bus_type中的这两个成员分别表示这个总线的两条链表:设备链表、驱动链表。通过两个链表可以分别找到该总线下所有的设备和驱动。 二、设备驱动模型 * 嵌入式操作系统 * 总线注册/删除 二、设备驱动模型 * 嵌入式操作系统 * 总线方法 二、设备驱动模型 * 嵌入式操作系统 * 总线属性 二、设备驱动模型 * 嵌入式操作系统 * 总线属性 二、设备驱动模型 * 嵌入式操作系统 * (2)设备 设备描述 二、设备驱动模型 * 嵌入式操作系统 * struct device 中我们需要关注: struct bus_type * bus 和struct device_driver *d

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档