代码改变世界

Android深度探索(卷1)HAL与驱动开发 第八章 让开发板发出声音:蜂鸣器驱动 读书笔记

2016-07-03 17:11  sxauzzz  阅读(317)  评论(0编辑  收藏  举报

PWM驱动的实现方式不同于LED,PWM驱动由多个文件组成。大多数Linux驱动的标准实现方式都是这种。一个复杂的驱动不会把所有代码都放在一个文件中。相关的代码会放在相应的文件中,在编译Linux驱动时将这些文件进行联合编译。当开发一个Linux驱动时,在init、exit等函数中发生错误时,Linux驱动可能会安装失败。甚至使用rmmod命令也无法正常地来将LINUX驱动卸载。这时就需要将相应的Linux驱动的内存地址修改,实现对Linux驱动的卸载。

Linux驱动代码的重用有两种方式,第一种是静态方式,就是通过include相应的头文件,采用标准C程序的方式。另一种被称为动态重用,使得一个Linux驱动可以使用另一个Linux驱动中的资源。

强行卸载Linux驱动。情况1:由于Linux驱动模块的初始化函数进行了某些操作而崩溃,从而导致初始化函数无法正常返回。这种情况的表现是当前Linux驱动模块没有被任何其他的Linux驱动模块使用,但却显示已经被引用了一次。请况2:卸载函数被阻塞。

蜂鸣器驱动。原理:通过脉冲来控制蜂鸣器。先将pwm.c和pwm_fun.c文件编译成pwm.o和pwm_fun.o,然后将这两个*.o文件链接成pwm_driver.o,最后生成ko文件。

软件1308班31号 张帆 博客园地址: http://home.cnblogs.com/u/sxauzzz/