第七章

第七章 控制发光二极管

作为IO内存是通过各种接口(PCI、USB、蓝牙、以太网等)连接到主机(PC、手机)的硬件(网卡、声卡、摄像头等)主机内存中的映射。Linux提供了多个与IO内存交互的函数,如ioreadl6/ioead32等。Linux内存的管理模块负责同步IO内存与硬件中的数据。每一个连接Linux的硬件在IO内存中会有映射首地址。在使用ioread32等函数读写IO内存时需要指定这些首地址。开发板上的LED也有其映射首地址。

创建LED驱动的设备文件

(1)       使用cdev_init函数初始化cdev

(2)       指定设备号

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

(4)       使用class_create宏创建struct class

(5)       使用device_create函数创建设备文件

卸载LED驱动的设备文件

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

在控制LED亮灭之前,必须了解如何设置寄存器。ARM处理器有多个寄存器,通过设置不同起存期的值,可以设置LED引脚的状态,打开或禁止上拉电路以及控制LED的亮和灭。

测试LED驱动

移植Linux驱动:

将Linux驱动移植到新的Linux内核一般只需要在新的内核下重新编译即可

http://www.cnblogs.com/BJBLOG/

原文地址:https://www.cnblogs.com/BJBLOG/p/5561311.html