第七章LED将为我闪烁:控制发光二极管
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七章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驱动的程序都不需要修改,不会在成不必要的麻烦。
以上是关于第七章LED将为我闪烁:控制发光二极管的主要内容,如果未能解决你的问题,请参考以下文章