第七章读书笔记
尽管linux 驱动直接与硬件打交道,但并不是linux 驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。所谓I/O内存是通过各种接口连接到主机的硬件在主机内存中的映射。LED驱动与word-count驱动的实现步骤类似,只是某些功能使用了不同的实现方法。对于卸载LED驱动的设备文件需要依次调回device_destory/class_destory方法。在控制LED亮/灭之前必须要了解如何设置寄存器。ARM处理器有多个寄存器,通过设置不同寄存器的值,可以设置LED引脚的状态.LED驱动可以使用以下两种方法来控制,一是通过字符串控制,二是通过I/O命令控制。
LED驱动有两种与设备文件交互的方式:直接写入字符串数据和I/O控制命令。直接向设备文件写入数据可以使用命令行来完成,也可以通过写函数来完成,但I/O控制命令只能通过IOCTL函数发出。Android系统能否正常运行,在很大程度上取决于Android是否识别当前设备的硬件,识别这些设备的工作主要是由LINUX驱动完成,LED驱动最简单的移植就是将其在不同LINUX内核版本下进行编译。如果在不同版本下进行移植,主要是移植第一部分,如果在不同硬件平台下的移植,主要是移植第二部分。
http://www.cnblogs.com/sjjj/