读书笔记第七章
控制发光二极管:
对于Linux驱动来说,需要直接与硬件交互,本章会完成一个真正意义的Linux驱动,用来控制开发板上的4个LED小灯,称为LED驱动,也就是说通过想Linux驱动发送数据可以控制LED小灯的开光。
LED驱动:
1.创建LED驱动的设备文件:
1.使用cdev_init函数初始化cdev;
2.指定设备号,Linux设备文件的设备号分为主设备号和次设备号,设备号可以直接在代码中指定,也可以动态分配;
3.使用cdev_add函数将字符设备添加到内核中的字符设备数组中;
4.使用class_create宏创建struct class;
第5步:使用device_create函数创建设备文件。
当需要卸载LED驱动的设备文件时,需要依次调用device_destroy、class_destroy和unregister_chrdev_region方法。
控制LED,LED驱动可以通过字符串控制和I/O命令控制。
通过本章,我们了解了LED驱动是真正与硬件打交道的Linux驱动,虽然驱动并不复杂,只是控制4个LED,但LED驱动已经包括了Linux驱动所有的必要部分,一个完整的Linux驱动主要有内部处理和与硬件交互两部分组成。