zoukankan      html  css  js  c++  java
  • Linux 总线设备驱动模型 (一)

    总线设备驱动模型

      一. 总线模型概述

        随着技术的不断进步,系统的拓扑结构也越来越复杂,对热插拔,跨平台移植性的要求也越来越高,

        2.4内核已经难以满足这些需求。为适应这种形势的需要,从Linux2.6内核开始提供了全新的设备模型。

      二. 总线

        1. 描述设备

          1. 在Linux 内核中, 总线由bus_type结构表示, 定义在<linux/device.h>

           structbus_type

           {

            const char*name; /*总线名称*/

            int(*match)  (structdevice *dev, structdevice_driver*drv);    /*驱动与设备的匹配函数*/

            ………

           }

           2. int(*match)(structdevice * dev, structdevice_driver* drv)

              当一个新设备或者新驱动被添加到这个总线时,该函数被调用。用于判断指定的驱动程序是否能处理指定的设备。若可以,则返回非零。

        2. 注册

          总线的注册使用如下函数bus_register(structbus_type*bus)若成功,新的总线将被添加进系统,并可在/sys/bus 下看到相应的目录

        3. 注销

          总线的注销使用函数 : void bus_unregister(structbus_type*bus) 

      三. 驱动

        1. 描述设备 

          在Linux内核中, 驱动由device_driver结构表示。

          structdevice_driver

          {

           const char*name; /*驱动名称*/

             structbus_type*bus;  /*驱动程序所在的总线*/

           int(*probe) (structdevice *dev);

           ………

          }

        2. 注册

          #驱动的注册使用如下函数

            intdriver_register(structdevice_driver*drv)

        3. 注销

          #驱动的注销使用如下函数

            void driver_unregister(structdevice_driver*drv)

      四. 设备

        1. 描述设备

          在Linux内核中, 设备由structdevice结构表示。

          structdevice 、

          {

            const char *init_name;  /*设备的名字*/

            struct bus_type*bus;  /*设备所在的总线*/

            ………

          }

        2. 注册

          #设备的注册使用如下函数

           intdevice_register(structdevice *dev)

        3. 注销

          #设备的注销使用以下函数

          void device_unregister(structdevice *dev)

  • 相关阅读:
    java 堆、栈、方法区/ 类变量、成员变量、局部变量
    native的详细用法
    《Java项目中classpath路径详解》
    事务四大特征:原子性,一致性,隔离性和持久性(ACID)
    Tomcat 配置文件server.xml详解
    linux下vim常用命令 (更新中...)
    #1572 小Hi与花盆
    leetcode 120. Triangle
    leetcode 174. Dungeon Game
    leetcode 368. Largest Divisible Subset
  • 原文地址:https://www.cnblogs.com/lvxiaoning/p/5154770.html
Copyright © 2011-2022 走看看