zoukankan      html  css  js  c++  java
  • linux内核的设备驱动模型和平台设备驱动

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

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

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

  • 相关阅读:
    GUI树组件,表格
    GUI对话框
    java事件处理5(窗口,窗口坐监视器
    java事件处理4(焦点,键盘
    java事件处理3
    java事件处理2
    2
    sql查询语句心得
    The 2018 ACM-ICPC Chinese Collegiate Programming Contest Maximum Element In A Stack
    cf 1006E
  • 原文地址:https://www.cnblogs.com/Rainingday/p/14319249.html
Copyright © 2011-2022 走看看