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

    第七章LED将为我闪烁:控制发光二极管

    第七章演示如何开发一个完整的、真正意义上的Linux驱动,通过向Linux驱动发送数据可以控制LED小灯的开关。

    第一节LED驱动的实现原理

           Linux驱动不是直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。I/O内存时通过各种接口连接到主机和硬件在主机内存中的映射。Linux内核的内存管理模块负责同步I/O内存与硬件中的数据。每一个连接Linux的硬件在I/O内存中都会有映射地址。开发板上的LED也有其映射的首地址。

    第二节编写 LED驱动 交互方式:命令和读写设备文件

           体验LED驱动的奇妙

                  LED驱动以动态驱动模块(.ko文件)的形式提供。

    创建LED驱动的设备文件

           使用cdev_init函数初始化cdev

           指定设备号

           使用cdev_add函数将字符设备添加到内核中的字符设备数组中。

           使用class_create宏创建struct class

           使用device_creat函数创建设备文件

    卸载LED驱动的设备文件

    设置寄存器与初始化LED驱动

    控制LED

    LED驱动的模块参数

    LED驱动的完整代码

          

    第三节测试LED驱动

           编写测试I/O控制命令的通用程序

           使用NDK测试LED驱动

           使用Java测试LED驱动

    第四节LED驱动的移植

           Linux驱动最简单的移植就是将其在不同Linux内核版本下进行编译。

           如果需要移植到另一个Linux内核,只需要修改驱动代码就可以,而不用修改测试程序就可以直接在目标开发板上运行。

           移植Linux驱动尽量不修改Linux驱动的接口,所有调用Linux驱动的程序都不需要修改,不会在成不必要的麻烦。

  • 相关阅读:
    cocos2d-x 团队碰面有感
    2014年3月份 月会
    2014年特种兵训练营感想
    web 的简单框架
    【实用小技巧】virtual box 虚拟机复制
    flash的Socket通讯沙箱和安全策略问题
    Codeforces Round #237 (Div. 2)
    类的静态常量数组初始化
    关于自己的成长计划
    Android
  • 原文地址:https://www.cnblogs.com/maxgty/p/5565310.html
Copyright © 2011-2022 走看看