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

  在本章中使用到了开发板S3C6410开发板上带的蜂鸣器,在使蜂鸣器发出声音的过程中需要使用到Linux驱动的代码重用,他有很多方法:
    1.编译是由多个文件组成的Linux驱动,由一个源代码文件组成驱动的源代码文件是s3c6410_leds.c。在main文件中会发现多了两个宏(_init和_exit),在两个宏在之前的驱动程序中从未使用过。
    2.代码重用分为静态和动态两种,上面那条是静态重用,这种方式是代码级的重用,也就是将需要重用的代码和使用这些代码的使用者放在一起编译,最终生成一个可执行文件或程序。模块依赖,也称为导出符号。如果只能一句话解释如何利用到处符号实现代码共享。
  如果编写的Linux驱动程序在逻辑上是正确的,那么可以正常装载和卸载,但在某些情况下,可能某些程序会出现异常情况。这时Linux驱动可能无法正常卸载。这种情况有如下几种:1.初始化函数崩溃;2.卸载函数被阻塞。
  蜂鸣器(PWM)驱动,蜂鸣器与LED类似,在这节中介绍了蜂鸣器驱动的原理是通过脉冲来控制蜂鸣器的打开和停止。然后有通过光盘和给出的步骤来完成PWM驱动的编译,并安装在s3c6410开发板上。
  测试蜂鸣器驱动,由于ioctl命令必须要求输入I/O命令的参数,但PWM驱动未使用I/O命令参数,所以ioctl最后一个命令行参数可以任意输入,执行上面的命令后,如果输出书中图片所给出的信息,并且PWM可以正常发出声音,说明PWM驱动测试成功。

原文地址:https://www.cnblogs.com/yxy666/p/5652661.html