第七章 读书笔记
第七章 LED将为我闪烁:控制发光二极管
一.LED驱动的实现原理。尽管Linux驱动直接和硬件打交道,但并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。
二.编写LED驱动。Linux驱动提供了两种交互方式:命令和读写设备文件。LED驱动以动态驱动模块的形式提供,测试LED驱动之前需要用USB数据线连接S3C开发板,然后打开S3C开发板的电源开关,成功启动后,执行build.sh脚本文件编译和安装LED驱动。创建LED驱动的设备文件:①使用cdev_init函数初始化cdev。②指定设备号,直接在代码中指定或者动态分配。③使用cdev_add函数将字符设备添加到内核中的字符设备数组中。④使用class_create宏创建struct class。⑤使用那个device_create函数创建设备文件。
三.测试LED驱动。编写测试I/O控制命令的通用程序。LED驱动有两种与设备文件交互的方式,直接写入字符串数据和I/O控制命令。直接向设备文件写入数据可以使用命令方来完成,也可以通过write函数来完成,但是I/O 控制命令只能通过ioctl函数发出。
四.LED驱动的移植。移植Linux驱动有一条非常重要,就是在修改Linux驱动的源代码时,应尽量不修改Linux驱动的接口。如果修改了一个语句,就意味着整个驱动的接口变化了,造成不必要的麻烦。
http://www.cnblogs.com/yangsasa/