1.1 使用IOCTL测试LED
前面的实验中,我们通过sys文件系统,在sys/devices/platform/x210-led目录下建立了四个对应led的文件,通过改变这四个文件的状态控制LED灯。本章节我们重新编写驱动,另外再编写测试应用程序,通过IOCTL控制LED。
1.1.1 LED驱动
在kernel/drivers/char目录下建议led2目录,在led2目录下建立四个文件:
leddriver.c
leddriver.h
Makefile
Kconfig
注意,android4.0采用linux 3.0.8内核,该内核已经去掉了IOCTL的方法,替代方案是使用unlocked_ioctl,相比ioctl,它的参数少了inode,因此我们在编写驱动时,要做相应的调整。
详细的驱动源码请从光盘或从论坛下载。
修改kernel/drivers/char/Kconfig文件,添加如下代码:
source "drivers/char/led2/Kconfig"
修改kernel/drivers/char/Makefile文件,添加如下代码:
obj-y += led2/
再在android根目录重新编译内核:
./mk -ki
使用fastboot或SD卡更新内核,下面我们再编写测试应用程序。
1.1.2 LED测试应用程序
在android文件系统的external目录下新建led目录,并在led目录下建立两个文件:
Android.mk
x210_led_test.c