代码改变世界

第八章 让开发板发出声音:蜂鸣器驱动

2016-06-05 12:52  weiboke  阅读(144)  评论(0编辑  收藏  举报

本主要讲的实例是蜂鸣器驱动程序,蜂鸣器是S3C6410开发板上自带的一个硬件设备。第一节linux驱动的代码重用,代码重用分为静态重用和动态重用,将要重用的代码放在头文件中声明,这种是静态重用,linux驱动可以使用另一个linux驱动中的资源,这是动态重用。代码共享中有一个是模块依赖,也称为导出符号,就是在一个驱动模块里使用另一个驱动模块里的被导出的符号。第二节linux驱动无法正常卸载,需要强行卸载,但是本章的方法不能强行卸载所有的linux驱动模块,只能卸载由于异常情况而导致的linux驱动模块无法卸载情况。比如:初始化函数崩溃,这种情况的表现是当前linux驱动模块没有被任何其他的linux驱动模块使用,但却显示已经被引用了一次。解决方法把是当前的linux驱动模块的引用计数器清零即可。卸载函数被阻塞,这种情况的表现是一执行rmmod命令就会停在那里不动,永远也不会返回到系统的操作提示符,这种情况的解决方法是将原来的卸载函数替换成一个空的卸载函数即可。第三节介绍蜂鸣器的驱动原理是通过脉冲来控制蜂鸣器的打开和停止,蜂鸣器称为PWM。

本章是蜂鸣器驱动,蜂鸣器驱动比较经典。在学习过程中要仔细学习每个步骤,及其代码。