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命令控制

5LED驱动的模块参数

6、 测试LED驱动

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

2)使用NDK测试LED驱动;

3)使用Java测试LED驱动;

7Led驱动移植

控制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驱动。


原文地址:https://www.cnblogs.com/purelair/p/5561549.html