第七章

控制发光二极管:

  对于大多数Linux驱动来说,需要直接与硬件交互,本章会完成一个真正意义的Linux驱动:LED驱动,该驱动用了控制开发板上的4个LED小灯,也就是说通过想Linux驱动发送数据可以控制LED小灯的开光。

编写LED驱动

1.创建LED驱动的设备文件:

第1步:使用cdev_init函数初始化cdev;

第2步:指定设备号,Linux设备文件的设备号分为主设备号和次设备号。设备号有直接在代码中指定和动态分配两种指定方法;

第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中;

第4步:使用class_create宏创建struct class;

第5步:使用device_create函数创建设备文件。

2.卸载LED驱动的设备文件,需要依次调用device_destroy、class_destroy和unregister_chrdev_region方法。

3.控制LED,LED驱动可以通过字符串和I/O命令两种方式控制LED。

小结:

   通过阅读本章,我了解到LED驱动是本书第一个真正与硬件打交道的Linux驱动,虽然驱动并不复杂,只是控制4个LED,但LED驱动已经包括了Linux驱动所有的必要部分,一个完整的Linux驱动主要有内部处理和与硬件交互两部分组成。

原文地址:https://www.cnblogs.com/j4120/p/5561425.html