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

通过对这一章节的学习我学到了如下知识:

一、蜂鸣器的知识:蜂鸣器也称为PWM(脉冲宽度调制),其基本原理是通过脉冲来控制蜂鸣器的打开和关闭,定时器的输出引脚与蜂鸣器的三极管相连,此电路的三极管是PNP性,当引脚是高电平时,此三极管处于饱和状态,电路导通,电流流过蜂鸣器,此时蜂鸣器发声,反之,当引脚是高电平时,此三极管处于截止状态,电路关断,蜂鸣器停止发声。       蜂鸣器驱动由三个文件组成:pwm_c.pwm_fun.h、pwm_fun.c。其中pwm.c是驱动主程序。pwm_fun.h引用了相应的头文件,以及定义了一些宏。pwm_fun.c文件则包含了打开和停止pwm的两个函数。

蜂鸣器是s3c6410开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。

对实验的学习:     将 3 个.c 文件分别编译成 3 个.0 文件,并将这3 个.0 文件链接生成.ko 文件。 1.编写main.c文件,以及fun.c、product.c和product.h文件。 2.编写makefile文件   obj-m := main.o  multi_file_driver-y := fun.o  product.o

二、代码重用: 1、静态重用 :将要重用的代码放在其他的文件中,如果要使用某些功能,用include相应的头文件即可 2、动态重用:一个Linux驱动可以使用另外一个Linux驱动中的资源 三、卸载由于异常情况而导致的Linux驱动模块无法卸载有如下两种情况:

1、初始化函数崩溃:将当前的Linux驱动模块的引用计数器清零即可

2、卸载函数被阻塞:将原来的卸载函数替换成一个空的卸载函数即可

时间: 2024-10-17 16:48:18

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

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

这一章的主要内容是让开发板发出声音——蜂鸣器驱动,在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