第七章 读书笔记
一个完整的linux驱动主要由内部处理和与硬件交互两部分组成。其中内部处理主要是指linux驱动的装载、卸载、与设备文件相关的动作处理以及业务逻辑等。与硬件交互主要是指通过ioweite、ioread32等函数与硬件中的寄存器进行数据的交互。Linux驱动在不同平台的移植也是处理这两部分。如果在不同Linux内核版本之间的移植,主要是移植第1部分,如果在不同硬件平台的移植,主要是移植第二部分。
编写Led灯驱动的步骤如下:
1、 创建LED驱动设备文件:
(1) 使用cdev-init函数初始化cdev;
(2) 指定设备号;
(3) 使用cdev_add函数将字符设备添加到内核中的字符设备数组中;
(4) 使用class_creat宏创建struct class;
(5) 使用device_create函数创建设备文件;
2、 卸载Led驱动的设备文件
3、 设置寄存器和初始化led驱动
4、 控制led灯:
(1) 通过字符串控制LED
(2) 通过I/O命令控制
5、 LED驱动的模块参数
6、 测试LED驱动
(1) 编写测试I/O控制命令的通用程序;
(2) 使用NDK测试LED驱动;
(3) 使用Java测试LED驱动;
7、Led驱动移植