Android深度探索读书笔记 第七章

    第七章主要介绍led驱动。1测试led驱动:测试之前需要用USB数据线连接s3c开发板,然后打开S3C开发板的电源开关,成功启动后,执行build..sh脚本文件编译和安装led驱动。2 创建led驱动的设备文件:1使用cdev_init函数初始化cdev,cdev的大多数成员变量并不需要我们自己去初始化,是需要调用cdev_init函数就可以初始化大部分cdev的成员变量。2指定设备号(直接在代码中指定;动态分配)3 使用cdev_add函数将字符设备添加到内核中的字符设备数组中。4 使用class_create宏创建struct class。 5 使用device_create函数创建设备文件,该函数在<linux内核源代码>/include/linux/device.h文件中定义。6卸载led驱动的设备文件,依次调用device_destrory、class_destrory和unregister_chrdev_region方法;控制led(通过字符串控制和通过I/O命令控制);其中测试led驱动程序,使用NDK测试led驱动和可执行程序测试差不多。不同的是NDKlibrary可以被Java程序调用。最后介绍的是led驱动的移植,首先要改变的就是leds_init函数,在led驱动装载后,会用0xE设置4个led的默认状态。然后需要修改控制led的代码。其中移植linux驱动有一条非常重要,就是在修改linux驱动的源代码时,应尽量不修改linux驱动的接口。

                                                                                                                                  http://www.cnblogs.com/sam0304/

原文地址:https://www.cnblogs.com/sam0304/p/5561497.html