《Android深度探索》第八章讲的是让开发板发出声音:蜂鸣器驱动。Linux驱动的代码重用有很多种方法,可以采用标准C程序的方式,将重用的代码放在其他的文件(在头文件中声明)中,如果要使用某些功能,include相应的头文件即可(这种方式称为静态重用)。也可以使用另外一种动态重用的方式,也就是一个Linux驱动可以使用另外一个Linux驱动中的资源(函数、变量、宏等)。代码重用分为静态和动态两种,静态重用是代码级的重用,也就是将需要重用的代码和使用这些代码的使用者放在一起进行编译,最终生成一个可执行文件或程序库。模块依赖,也称为导出符号,就是“在一个驱动模块里使用另一个驱动模块里的被导出的符号”。在遇到初始化函数崩溃和卸载函数被阻塞的情况时,Linux驱动可能会无法正常卸载,需要强行卸载Linux驱动。蜂鸣器也称为PWM(脉冲宽度调制),基本原理是通过脉冲来控制蜂鸣器的打开和停止。
通过对第八章的学习,我学会了如何编写程序让开发板发出声音,也掌握了Linux驱动常用的代码重用的方式,代码重用分为静态和动态两种。在遇到初始化函数崩溃和卸载函数被阻塞的情况时,Linux驱动可能会无法正常卸载,需要强行卸载Linux驱动。学会了强行卸载Linux驱动的方法,可免去不断重启机器的痛苦。