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

         代码重用分为静态和动态。静态重用是使用某些功能时,include相应的头文件即可。动态重用就是一个Linux驱动可以使用另外一个Linux驱动中的资源。C或C++语言中编译多个源代码文件时,如果a.c使用了b.c文件中的函数,需要在a.c文件中使用extern预先定义b.c中德函数,extern的作用就是告诉编译器该函数的函数名、参数个数、参数类型和返回值类型。Extern只在编译阶段起作用。

         当linux驱动异常无法正常卸载时,即无法使用rmmod命令卸载Linux驱动。有如下几种情况:1.初始化函数奔溃。2.卸载函数被阻塞。当遇到这种情况时可以重启机器解决,但是每次都重启比较麻烦,因此可以通过修改Linux驱动的相应内存地址删除Linux驱动。

         蜂鸣器是S3C6410开发板上带的一个硬件设备,通过向寄存器写入特定的值来控制蜂鸣器发出尖叫。基本原理使用过脉冲来控制蜂鸣器的打开和停止。PWM使用端口F的GPFCON寄存器进行控制。该寄存器在Linux内核中对应的宏是S3C64XX-GPFCON,该红表示GPFCON寄存器寄存的虚拟地址。GPFCON只用了最高两位(30和31位)来控制PWM。当最高位为10时,打开PWM。为00时停止PWM。

原文地址:https://www.cnblogs.com/sxauzzj/p/5555848.html