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驱动的内部处理。

     

  • 相关阅读:
    开窗函数Over
    CodeSmith
    codeMatic代码生成器
    Mvc身份认证方式
    Neo4j入门详细教程
    pathlib路径问题
    python_跨文件二维全局变量传参
    .md图片链接转存并替换路径,及相关报错解决方法
    ERROR: column "xxxxxx" does not exist解决办法
    SCP远程传输文件
  • 原文地址:https://www.cnblogs.com/zgen1/p/5547787.html
Copyright © 2011-2022 走看看