zoukankan      html  css  js  c++  java
  • 第7章 LED将为我闪烁:控制发光二极管

    所谓I/O内存是通过各种接口连接到主机的硬件在主机内存的映射。LED驱动还提供了两种交互方式:命令和读写设备文件。

    创建设备文件的步骤:

    第1步:使用cdev_init函数初始化cdev

    第2步:指定设备号

           Linux设备文件的设备号分为主设备号和次设备号,其中前12位表示主设备号 ,后20位表示次设备号。设备号有如下两种指定方法:

       (1)直接在代码中指定(硬编码)。

       (2)动态分配。

    第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中

    第4步:使用class_create宏创建struct class

    第5步:使用device_create函数创建设备文件

    LED驱动可以使用以下两种方式控制LED:

    (1)通过字符串控制LED

    (2)通过I/O命令控制LED

        一个完整的Linux驱动主要由内部处理与硬件交互两部分组成。其中内部处理主要是指Linux驱动的装载,卸载,与设备文件相关的动作处理(读写设备文件,向设备文件发送I/O命令等动作)以及业务逻辑等。与硬件交互主要是指通过iowrite32,ioread32等函数与硬件中德寄存器进行数据交互。Linux驱动在不同平台的移植也是处理这两部分。在不同Linux内核版本之间的移植,主要是移植第一部分,也就是Linux驱动的内部处理。

     

  • 相关阅读:
    第三次迭代目标
    UML用例图以及时序图
    第一次迭代目标完成情况及感想
    第四次迭代感想
    数据流图与数据流程图的区别
    第三次迭代感想
    速达的用例图与时序图
    第一次迭代的感想
    速达的WBS
    NABCD的分解
  • 原文地址:https://www.cnblogs.com/zgen1/p/5547787.html
Copyright © 2011-2022 走看看