Linux底层驱动之设备驱动模型的一般分析方法-三角关系:总线、设备和驱动

到Linux2.6之后出现设备驱动模型,很多驱动都按照设备驱动模型改写了。设备驱动模型是以复杂度来换取代码的简洁度,其中主要的三角关系就是:总线、设备和驱动。

       系统中现有总线,然后驱动和设备分别注册到总线上,一旦驱动和设备匹配,驱动即支持该设备从而注册成功并受总线管理。总线屏蔽大量的技术细节,公用的技术。例如协议,规范等等。而驱动和设备体现的是Linux的“资源和实现”的分离思想。理论上是这么分析,实际上在使用过程中我一般会按照以下步骤来:

1、该总线的匹配规则是啥?也就是总线中的match(找到match)。知道总线的匹配规则之后对挂在该总线上的设备和驱动是怎么找到对方的就明确了。

2、按照匹配规则进行代码阅读,按照匹配的条件对设备注册和驱动注册的代码进行阅读。例如platform总线,可以使用sourceInsign进行ID搜索,查看对应的驱动。

3、分析驱动对设备的解析,分析驱动利用内核提供的资源。再反过来查看总线提供的哪些已经做好的工作。

    以上步骤在之前进行RapidIO和PCI等复杂驱动开发时取到比较高的效率。写出来做个总结也供大家参考。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值