第八章
这章将介绍蜂鸣器的实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣 器)。
1.Linux驱动的代码重用:可以采用标准的C程序的方法将要重用的代码放在其他的文件中。如果要使用某些功能,include相应的头文件即可,也可以是另外一种动态重用的方式,也是一个Linux驱动可以使用另外一个Linux驱动中的资源。在main.c文件中会发现多了两个宏(_init和_exit),这两个宏在之前的驱动程序中从未使用过。这两个宏分别是用来标识Linux驱动初始化函数(main_init)和Linux驱动卸载函数(main_exit)。
2.强行卸载Linux驱动:通过rmmod命令卸载Linux驱动,但有时会导致Linux驱动模块无法卸载,如初始化函数崩溃卸载函数被阻塞
3.蜂鸣器(PWM)驱动:蜂鸣器是S3C6410开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器 发出尖叫声。PWm时驱动的实现方式不同于LED驱动,PWM驱动将由多个文件组成。这也是大多数Linux驱动的标准实现方式。在编译Linux驱动时将这些文件进行联合编译。
小结:本章介绍了把Linux驱动分成多个文件的方式。这些文件中的数据结构、函数的代码也可以被多个不同的驱动使用,所以这也是代码重用的重要方法。PWM驱动与LED驱动的实现流程类似,可能还要简单一些。在本章只是为了演示如何将一个Linux驱动分成多个实现文件,才使用了比较简单的PWM驱动。通过本章的学习,可以掌握Linux驱动常用的代码重用方式。