Android系统要控制硬件设备,首先需要在驱动层写一个驱动,android的底层是Linux,写设备驱动和Linux下写设备驱动一样。
在Linux系统中,设备驱动是以文件的形式表现,可以使用和操作普通文件相同的操作命令对设备文件进行操作,例如打开、关闭、读、写等。
写字符设备驱动步骤:
1. 定义一个file_operations结构体,并在结构体里面定义设备的打开、关闭、读、写、控制等操作函数。
2. 在结构体外实现结构体里面定义的操作函数。
3. 向内核注册和卸载驱动模块。
在Linux系统中,设备驱动是以文件的形式表现,可以使用和操作普通文件相同的操作命令对设备文件进行操作,例如打开、关闭、读、写等。
写字符设备驱动步骤:
1. 定义一个file_operations结构体,并在结构体里面定义设备的打开、关闭、读、写、控制等操作函数。
2. 在结构体外实现结构体里面定义的操作函数。
3. 向内核注册和卸载驱动模块。
为了方便测试,这里采取控制LED点灯的方式测试,测试的硬件是Cubieboard和扩展板DVK522(见下图)。
一、在lichee/linux-3.4/driver/char目录下新建myled文件夹,新建一个LEDdriver.c文件,代码如下:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/device.h>
#include <asm/uaccess.h>
#include <linux