• linux内核的设备驱动模型和平台设备驱动


    为了解决这种驱动代码和设备信息耦合的问题,linux 提出了设备驱动模型。设备驱动模型中包括总线,驱动,设备

    • 设备 (device) :挂载在某个总线的物理设备;
    • 驱动 (driver):与特定设备相关的软件,负责初始化该设备以及提供一些操作该设备的操作方式;
    • 总线(bus):负责管理挂载对应总线的设备以及驱动,匹配设备和驱动,它维护着两个链表,里面记录着各个已经注册的设备和驱动。;

    在设备驱动模型中,引入总线的概念可以对驱动代码和设备信息进行分离。对于I2C、SPI、USB这类常见的物理总线来说,linux内核回自动创建与之对应的驱动总线,因此I2C设备,SPI设备,USB设备自然是注册挂载在相应的总线上。
    物理总线:芯片与各个功能外设之间传送信息的公共通信干线,其中又包括数据总线、地址总线和控
    制总线,以此来传输各种通信时序。
    驱动总线:负责管理设备和驱动。制定设备和驱动的匹配规则,一旦总线上注册了新的设备或者是新
    的驱动,总线将尝试为它们进行配对。
    但是实际项目中,比如led,rtc,beep,key这类结构简单的设备,它们的控制不需要时序,它们没有相应的物理总线。所以linux内核不会为它们创建驱动总线。为了是这部分设备的驱动开发也能够遵循设备驱动模型,linux内核引入了一种虚拟的总线——平台总线(platform bus).

  • 相关阅读:
    java 获取两个日期相差的毫秒数
    list 去重复
    java日期处理 calendar 和date
    CSS文字超出div或者span时显示省略号
    null类型的字段加1
    CSS或者JS实现鼠标悬停显示另一元素
    去除空格的js 和 使用正则表达式替换
    php preg_replace正则表达式除去<a>
    PHP页面编码问题
    用php生成09,az
  • 原文地址:https://www.cnblogs.com/Rainingday/p/14319249.html
Copyright © 2020-2023  润新知