本节我们主要研究蜂鸣器驱动,蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打开和关闭。PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式。
蜂鸣器是S3C6410开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫。
(1)前提是eclipse中安装了CDT插件。
(2)在eclipse中单击File-New-Other,选择C Project项,单击next进行相应的设置,例如工程名为word_count,然后Finish建立一个空的C工程。
(3)单击word_count工程右击菜单中的New-Soruce Folder,打开New Soruce Folder对话框,在Folder name文本框中输入src,然后Finish建立保存linux驱动源代码文件的目录。
(4)单击src目录,右键单击Import打开对话框,选择File System后next,选择word_count.c文件,然后单击Advanced,选择Create links in workspace复选框,单击Finish建立word_count.c文件中的src目录中的连接。
(5)设置include路径:右键word_count工程下的Properties,选中C/C++ General-Paths and Symbols,选中右侧Includes页的GNU C项,单击Add添加路径后OK关闭对话框。打开word_count.c,按住Ctrl,鼠标左键单击某个linux内核函数,就会直接跟踪到linux内核函数的定义部分。
(6)编译linux驱动:利用build.sh脚本编译、安装linux驱动。
(7)测试linux驱动:导入.c文件;设置include路径;建立Target,工程右键Make Target-Create,打开Create Make Target,在Target name中输入工程名后OK;Build工程:Make Targets-Build;运行测试程序,Run As-Local C/C++ Application,运行结果会输出到Console视图中。