注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

Linux MTD子系统学习6—MTD设备的注册及流程之四  

2012-01-14 19:25:20|  分类: LINUX内核驱动 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Linux MTD子系统学习6—MTD设备的注册及流程之四

讲了这么多了,那么驱动、总线和设备有什么关系,我们没有讲过BUS,但在讲其它两者的过程中也捎带说了点儿。现在稍微做一个总结:
    platform device包含device,根据device可以获得相应的bus及driver。

设备注册到总线上后形成一个数据结构(双向链表),驱动可以通过遍历其来获得平台设备,并根据设备来遍历总线上的所有相关的驱动。

上面讲过了,不但设备注册到了BUS,驱动也注册到了,同样通过驱动也可以获得相应的BUS,然后再遍历总线上的设备,从而取得平台的设备,然后根据名字来对设备和驱动进行匹配,进一步将其二者关联(bind)起来,这个就将平台设备和平台驱动通过总线动态的结合到了一起。
   成功的进行匹配后,就可以调用驱动的probe,实际上是调用的平台驱动的函数(还记得上一章讲的平台驱动和驱动如何互相给函数指针赋值不),这样就开始了最初讲的漫长的PROBE函数。
 

哪些适用于plarform驱动?

    platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过platform device提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,这样拥有更好的可移植性。
    platform机制的本身使用并不复杂,由两部分组成:platform_device和platfrom_driver。Platform driver通过platform bus获取platform_device。

    通常情况下只要和内核本身运行依赖性不大的外围设备,相对独立的,拥有各自独立的资源(地址总线和IRQs),都可以用 platform_driver来管理,而timer,irq等小系统之内的设备则最好不用platfrom_driver机制。

    platform_device最大的特点是:CPU直接寻址设备的寄存器空间,即使对于其他总线设备,设备本身的寄存器无法通过CPU总线访问,但总线的controller仍然需要通过platform bus来管理。

    总之,platfrom_driver的根本目的是为了统一管理系统的外设资源,为驱动程序提供统一的接口来访问系统资源,将驱动和资源分离,提高程序的可移植性。

 

最后一句话:把学习当成一种乐趣。

  评论这张
 
阅读(679)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017