zoukankan      html  css  js  c++  java
  • 迅为4412开发板Linux驱动教程——总线_设备_驱动注冊流程具体解释


    视频下载地址:

    驱动注冊:http://pan.baidu.com/s/1i34HcDB

    设备注冊:http://pan.baidu.com/s/1kTlGkcR

    总线_设备_驱动注冊流程具体解释

    • 注冊流程图



    • 设备一般都须要先注冊,才干注冊驱动

    – 如今越来越多的热拔插设备,反过来了。先注冊驱动。设备来了再注冊

    设备

    • 本节使用的命令

    – 查看总线的命令#ls /sys/bus/

    – 查看设备号的命令#cat /proc/devices

    • 设备都有主设备号和次设备号。否则255个设备号不够用

    – 查看杂项设备号的命令#cat /proc/misc

    设备注冊

    关于注冊设备的一点说明

    • 早先的Linux会使用单独的文件注冊设备。如今大多是使用引入的虚拟

    平台,使用虚拟平台来注冊设备会easy非常多

    • 假设大家在网上看到大段的注冊设备的代码,可简单了解一下,知道

    有这么个东西就成,不用去深究。不要去学习“屠龙技”,如今基本都

    是直接在平台文件里注冊设备

    注冊设备

    注冊设备使用结构体platform_device,该结构体在头文件“vim 

    include/linux/platform_device.h”中。头文件里也有注冊设备和卸载设

    备的函数。了解就可以。



    • 操作过程

    – 注冊设备。将设备结构体放到平台文件里,会自己主动注冊设备,不用去调

    用注冊设备的函数。

    – 在Kconfig文件里加入编译HELLO设备的宏定义(前面教程中已经加入)

    – 配置menuconfig中的HELLO宏定义。生成新的.config文件

    – 生成新的zImage

    • 注冊完之后在虚拟平台总线下能够查到注冊的设备

    – ls /sys/devices/platform/

    驱动注冊

    • 驱动注冊

    – 非常重要,牢牢掌握,以后写不论什么Linux驱动都会用到

    • 实验

    – 在mini_linux_module的基础上加入驱动注冊部分

    驱动注冊——头文件

    • 驱动注冊使用结构体platform_driver,该结构体在头文件“vim 

    include/linux/platform_device.h”中

    • 驱动注冊platform_driver_register,驱动卸载函数

    platform_driver_unregister也在这个头文件里

    – 这两个函数的參数都仅仅有结构体platform_driver

    驱动注冊——注冊结构体

     

    驱动注冊——注冊结构体

    • 驱动常见的几种状态。初始化。移除。休眠,复位

    – 就像PC一样。有的驱动休眠之后无法使用。有的能够使用。有的系统唤

    醒之后,驱动须要又一次启动才干正常工作。也有直接就能够使用等等

    • probe函数

    – platform_match函数匹配之后,驱动调用的初始化函数

    • remove函数

    – 移除驱动函数

    • suspend函数

    – 悬挂(休眠)驱动函数

    • resume函数

    – 休眠后恢复驱动

    • device_driver数据结构的两个參数

    – name和注冊的设备name要一致

    – owner一般赋值THIS_MODULE

    实验

    • 在mini_linux_module的基础上加入驱动注冊部分

    • 编译。在开发板上载入和卸载驱动

  • 相关阅读:
    第16章 行为型模式—命令模式
    第15章 行为型模式—职责链模式
    第14章 结构型模式—代理模式
    第12章 结构型模式—外观模式
    第11章 结构型模式—装饰模式
    第10章 结构型模式—组合模式
    第9章 结构型模式—桥接模式
    第8章 结构型模式—适配器模式
    Qt中Qstring,char,int,QByteArray之间到转换(转)
    QT:QByteArray和QByteArray、char *(转)
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7323426.html
Copyright © 2011-2022 走看看