查看: 2701|回复: 2

[评测分享] 【ALINX AXU2CGB试用】从 linux 驱动模型的角度看 iic 总线框架

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2021-7-27 20:35:14 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 robe.zhang 于 2021-7-27 20:48 编辑

    【ALINX AXU2CGB试用】从 linux 驱动模型的角度看 iic 总线框架


    Linux 驱动模型中有 bus,device,driver 三部分,这个是软件的抽象,软件中的概念,看很多地方喜欢拿这个概念和实体总线对比,个人感觉不能比较,为什么这么说,先看iic驱动吧:

    Iic 主机使用的 platform driver,platform 平台驱动
    1.png
    Iic eeprom 从机使用的module,基础的模块去初始化驱动。
    2.png
    结果也看到了, eeprom 能工作,而且工作的好好的。

    是不是有一大堆疑问:
    1, iic 主机为什么不在 iic 总线上?可是偏偏还能工作?
    2,iic 主机为什么在 platform 平台总线上?
    3,iic 设备又为什么使用基础的模块去初始化驱动?

    Linux 驱动模型中的 bus devicedriver ,看作是软件中实现设备支持的一种组织方式,本文叫它组织形式,这种形式分为 bus,device,driver,如果你自己写一个内核,你可以把这种形式分为狗窝,小狗,狗食,同样也可以。

    Iic 主机设备被解析为platform 设备,与此匹配的驱动,也需要注册为 platform 驱动,因为都是 platform 平台,才是一个组织,才能适配。
    所以iic主机的驱动,也必须注册为 platform驱动,不然不在一个组织形式中,找不到无法适配,驱动就不会工作,硬件也就不能工作。
    现在Iic 主机驱动搞定了。
    3.png
    iic 从机设备被iic主机驱动解析为 iic 总线设备, eeprom 驱动也要注册为 iic 驱动,所以 eeprom 驱动要注册为 iic 驱动才可以工作。Module_init 仅仅是模块初始化接口,at24_init 初始化函数中注册了 iic 总线驱动,现在Iic 从机驱动也搞定了。

    问题又来了:
    1, iic 总线从哪来
    2, iic 主机在哪里注册的
    3, Iic 从机在软件层面怎么挂在 iic 主机上?

    Iic 总线从哪来,系统初始化创建起来的。如笔者往期文章中有详细分析
    【ALINXAXU2CGB试用】IIC 核心驱动框架源码分析
    https://www.cirmall.com/bbs/thread-206787-1-1.html

    iic 主机是在 platform driver驱动中又重新注册为 iic 主机的。Iic 主机有了
    4.png
    Iic 从机在软件层面上挂载到总线上,主要依赖设备树中的树形结构,同时也是iic 主机驱动解析过程实现的,在核心层实现。Iic 从机也挂在iic主机上了,此处也仅仅是组织形式,软件上并不像硬件总线需要两根线路实现连接。

    说了这么多驱动模型,设备树结构,等等,都是抽象的概念,最好自己详细透彻的分析一下驱动,本文所有概念都会有自己独特的认知。

    电路板上的Iic总线是实体总线,iic实体总线上挂着主机和从机,iic 实体总线是用来传输信号,实现主从机通信的。

    然而驱动层面的总线也有 iic 总线, platform 总线,SPI总线等等,驱动的总线挂着device,还挂着 driver,是便于实现 device 和 driver 适配的一种组织形式。

    所以驱动中总线的概念,和实体总线,不同类不要比较,这也是笔者不建议把这两类东西放一起比较的原因。

    Linux 驱动中的《iic总线》,和硬件电路板中的《iic总线》,不是一个东西,不是一个概念,仅仅名字相同而已。





    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-7-28 11:02:08 | 显示全部楼层
    牛B!!一篇水贴,十句话有8句是错的,剩下两句还是歪理~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2021-7-29 20:51:32 | 显示全部楼层
    eefocus_3755449 发表于 2021-7-28 11:02
    牛B!!一篇水贴,十句话有8句是错的,剩下两句还是歪理~

    你好,差距太大就看不懂了,好好学习吧
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-23 10:12 , Processed in 0.127317 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.