Android深度探索与驱动开发(八)

本文介绍了S3C6410开发板上的蜂鸣器作为硬件设备的PWM驱动实现方法,包括如何通过寄存器控制蜂鸣器发声,PWM驱动与LED驱动的不同之处,以及Linux驱动的常见代码重用方式。此外,还提供了一种在Linux驱动无法正常卸载时的解决办法。

   蜂鸣器是 S3C6410 开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器 发出尖叫声。一个完整的蜂呜器驱动(可以打开和关闭蜂鸣 器). PW时驱动的实现方式不同于 LED 驱动, PWM 驱动将由多个文件组成。这也是大多数 Linux 驱动的标准实现方式. 也就是说-个复杂的驱动不太可能将所有的代码都放在一个文件中。最好将 相关的代码放在相应的文件中。在编译 Linux 驱动时将这些文件进行联合编译。这些文件中的数据结构、函数的代码也可以被多个不同的驱动使用, 所 以这也是代码重用的重要方法。 当开发一个 Linux 驱动时, 有可能会在 山t、 exit 等函数中发生错误,这时 Linux 驱动可能会 安装失败,更糟糕的是无法使用 rmmod 命令正常卸载 Linux 驱动,这也就会造成无法再次安装的 窘境。 当然,遇到这种情况,重启机器就可以解决了。但每次都要重启机器, 实在太麻烦了。因此在遇到无法卸载 Linux 驱动时通过直接修改 Linux 驱动相应的内存地址删除 Linux 驱动, 避免了重启机器的麻烦。

  PWM 驱动与 LED 驱动的实现流程类似, 可能还要简单一些。在本章只是为了演示如何将一个 Linux 驱动分成多个实现文件,才使用了比较简单的 PWM 驱动。读者通过本章的学习,可以掌握 Linux 驱动常用的代码重用方式。 除此之外,本章还介绍了一种强行卸载 Linux 驱动的方法。通过 这种方法。读者就可免去不断重启机器的痛苦了。

转载于:https://www.cnblogs.com/li-xiaobin/p/5561607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值