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

     

  • 相关阅读:
    Python的异常处理
    flex stage.width 与stage.stageWidth的区别
    Flex timer使用 keydown事件注册到stage
    flex 事件注册和鼠标拖动
    window.open a.href打开窗口referer的问题
    java UUID的创建
    flex chrome浏览器调试flex程序
    EL表达式 requestScope initParam用法
    Java8 Lumbda表达式 初步
    jQuery 动画的执行
  • 原文地址:https://www.cnblogs.com/zgen1/p/5547787.html
Copyright © 2011-2022 走看看