Android深入探索第七章
编写Led灯驱动的步骤如下:
1、 创建LED驱动设备文件:
(1)使用cdev-init函数初始化cdev;
(2)指定设备号;
(3)使用cdev_add函数将字符设备添加到内核中的字符设备数组中;
(4)使用class_creat宏创建struct class;
(5)使用device_create函数创建设备文件;
2、卸载Led驱动的设备文件
3、 设置寄存器和初始化led驱动
4、 控制led灯:
(1)通过字符串控制LED
(2)通过I/O命令控制
5、 LED驱动的模块参数
6、 测试LED驱动
(1)编写测试I/O控制命令的通用程序;
(2)使用NDK测试LED驱动;
(3)使用Java测试LED驱动;
7、Led驱动移植
控制LED:
1.编写ioctl接口函数
2.填充file_operations结构,主要是将ioctl函数注册进去
3.填充miscdevice结构,主要是次设备号、fops和设备名称。
4.编写要提供给module_init宏使用的初始化代码,设置LED端口为输出,注册到内核
5.编写要提供给module_exit宏使用的注销代码,主要是注销掉初始化中注册到内核的miscdevice设备
ARM处理器有多个寄存器,通过设置不同的寄存器的值。可以设置LED引脚的状态,打开或者禁止上拉电路以及控制LED的亮和灭。LED驱动可以使用两种方式来控制LED,同过字符串控制LED和通过I/O命令控制LED。对于测试LED驱动我们可以通过编写测试I/O控制命令的通用程序,或者使用NDK测试LED驱动,也可以使用Java测试LED驱动。