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驱动的程序都不需要修改,不会在成不必要的麻烦。

  • 相关阅读:
    asp.net 浏览器下载文件的四种方式
    微信网页认证asp.net core返回MP_verify_CuUky7CS6gvKrMSe.txt
    qrcode length overflow (1632>1056)qrcode.js使用过程中二维码长度溢出解决办法
    layui的文档位置
    在64位Win2008 Server 系统上部署SSIS包遇到的问题及解决办法
    SQL SERVER 2008 中收缩数据库日志
    Reporting Service 按需隐藏导出类型
    SQL语句统计数据库中数据 有心人
    NC27 集合的所有子集(一)
    java虚拟机
  • 原文地址:https://www.cnblogs.com/maxgty/p/5565310.html
Copyright © 2011-2022 走看看