第6章 Android驱动编程
第6章 Android驱动编程
通过介绍本章设备驱动、字符设备驱动编程、GPIO驱动程序实例和4*4扫描键盘驱动等内容,熟练掌握了Android驱动编程。Android内核内核模块编程中包括设备驱动和内核模块、模块相关命令、Android内核内核模块编程和内核模块实例程序。Android内核中采用可加载的模块化设计,一般情况下编译的Android内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中。模块相关命令中lsmod列出了当前系统中加载的模块,rmmood用于当前模块卸载,insmod和modprobe用于加载当前模块。Android内核模块加载函数一般以_init标识声明,典型的模块加载函数的形式如下:
static int _init initialization_function(void)
{
/*初始化代码*/
}
module_init(initialization_function);
在字符设备驱动编程中设备完成注册加载之后,应用程序即可该设备进行一定的操作,如open()、read()、write()等,而驱动程序就是用于实现这些操作,在应用程序调用相应入口函数时执行相关的操作。在Android内核驱动程序中,涉及3个重要的内核数据结构,分别是file_operation、file和inode。
LCD液晶显示屏按显示原理分为STN和TFT两种。STN液晶显示屏加上彩色滤光片,并将单色显示矩阵中的每一像素分为3个子像素,分别通过彩色滤光片显示红、绿、蓝三原色。TFT彩色液晶屏,随着液晶屏显示技术的不断发展和进步,TFT液晶显示屏被广泛用于制作成计算机中的液晶显示设备。最后,介绍了中断编程,并以编写完整的按键驱动程序为例进行讲解。通过本章有效掌握了Android驱动编程,收获很大。