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

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

时间: 2024-10-10 10:58:37

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

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

这一章的主要内容是让开发板发出声音——蜂鸣器驱动,在Linux驱动开发中重点也学习了这一部分内容,同时最后我们小组的考核内容是通过中断控制蜂鸣器发七个音符的音. 这一部分中,要中断控制蜂鸣器,在中断和蜂鸣器代码的基础上进行增加.中断与蜂鸣器的代码不变,在中断的测试代码中,首先要定义七个音符,之后将开发板上的七个键与七个音符相连接,再将七个音符的转换与蜂鸣器相连接,来达到所需的效果. 核心代码: int main() { int fd,fd1; int div; int keyval; fd1 =

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

蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止.蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音.本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打 开和关闭.PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式. Linux驱动的代码重用有很多种方法.分为静态重用和动态重用,静态重用是代码级的重用,就是将需要重用的代码和使用这些代码的文档放在一起编 译,最终生成一个

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

代码重用分为静态和动态.静态重用是使用某些功能时,include相应的头文件即可.动态重用就是一个Linux驱动可以使用另外一个Linux驱动中的资源.C或C++语言中编译多个源代码文件时,如果a.c使用了b.c文件中的函数,需要在a.c文件中使用extern预先定义b.c中德函数,extern的作用就是告诉编译器该函数的函数名.参数个数.参数类型和返回值类型.Extern只在编译阶段起作用. 当linux驱动异常无法正常卸载时,即无法使用rmmod命令卸载Linux驱动.有如下几种情况:1.初

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

蜂鸣器是s3c6410开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声. 在前面的章节编写了两个完整的linux驱动:word_count驱动和led驱动,两个有一共同点就是都有一个源代码文件组成. 代码重用分为静态和动态两种.即将需要重要的代码使用者放在一起进行编译,最终生成一个可执行的文件或程序库. 蜂鸣器与led类似,也是s3c6410开发板上自带的一个简单的硬件.如果打开蜂鸣器,开发板会发出类似蜂鸣的尖叫声,关闭蜂鸣器则会停止尖叫声. 如果编写的linux驱动

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

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

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

一.Linux驱动的代码重用 Linux 驱动的代码重用有很多种方法.可以采用标准 C 程序的方式.将要重用的代码放在其他的文件(在头文件中声明)中.如果要使用某些功能, include 相应的头文件即可(这种方式称为静态重用).也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可以使用另外一个Linux驱动中的资源(函数.变量.宏等).本节将详细介绍这些代码重用方法. 编译是有多个文件组成的Linux驱动 Linux 驱动的代码不多,将所有的代码都放到一个文件中并没有什么不妥, 但

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

第八章介绍了一个个实验:蜂鸣器驱动,让开发板发出声音. 将介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,通过该驱动可以控制蜂鸣器的打开与关闭. 蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止.蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音.本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打开和关闭.PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式. Linu

第8章 让开发板发出声音,蜂鸣器驱动 心得体会

第8章让开发板发出声音,蜂鸣器驱动 心得体会 通过学习Android深度探索(卷1)HAL与驱动开发的第8章 让开发板发出声音,蜂鸣器驱动,我加深对驱动的认识.以下主要是我对本节实验和参考在Linux驱动开发中使用PWM控制蜂鸣器中的一些见解. 先编写一个简单的蜂鸣器驱动程序,根据开发板上的硬件IO接口和Android驱动规范,在kernel中的driver目录中新建一个Buzzer文件,新建一个buzzer.c的源文 在目录下创建一个Makefile文件 先运行make clean命令清楚到编

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

第8章让开发板发出声音,蜂鸣器驱动 心得体会 在目录下创建一个Makefile文件 先运行make clean命令清楚到编译生成的一些工程文件,执行make命令,重新编译驱动程序.将编译生成的buzzer.ko内核镜像文件拷贝出来,adb push buzzer.ko /fpga/moudles 然后插入内核镜像文件到系统中,insmod buzzer.ko,并且装载设备驱动程序,mknod  /dev/buzzer c 248 0 现在就可以在库层直接编写C/C++文件来调用这个驱动程序,这个

让开发板发出声音

第八章介绍了第二个实验:蜂鸣器驱动,使开发板发出声音将介绍蜂鸣器的实现原理,并实现一个完整的蜂呜器驱动,通过该驱动可以控制蜂鸣器的打开与关闭. 蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止.蜂鸣 器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音.本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打 开和关闭.PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式. Linu