标签:
这章将介绍蜂鸣器的实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣 器).Linux驱动的代码重用,可以采用标准的C程序的方法将要重用的代码放在其他的文件中。如果要使用某些功能,include相应的头文件即可,也可以是另外一种动态重用的方式,也是一个Linux驱动可以使用另外一个Linux驱动中的资源。蜂鸣器是 S3C6410 开发板上带的一个硬件设备。
通过有I/O命令可以打开和停止PWM,PWM 驱动由3 个文件组成: pwm.c, pwm_fun.h 、pwm_fun.c。其中pwm.c 是驱动主程序。pwm_fun.h 引用了相应的头文件,以及定义了一些宏。pwm_fun.c 文件则包含了打开和停止PWM的两个函数( pwm_start 和pwm_stop )。运行之后从Makefile 文件的内容可以看出,编译器首先将pwm.c 和pwm_fun.c 文件编译成pwm.o和pwm_fun.o,然后再将这两个*.o文件链接成pwm_driver.o,最后生成pwm_driver.ko 。可以通过向寄存器写入特定的值来控制蜂鸣器 发出尖叫声。 PWm时驱动的实现方式不同于LED 驱动,PWM 驱动将由多个文件组成。这也是大多数Linux 驱动的标准实现方式。在编译 Linux 驱动时将这些文件进行联合编译。本节将介绍把 Linux 驱动分成多个文件的方式。这些文件中的数据结构、函数的代码也可以被多个不同的驱动使用, 所 以这也是代码重用的重要方法。 PWM 驱动与 LED 驱动的实现流程类似,可能还要简单一些。在本章只是为了演示如何将一个 Linux 驱动分成多个实现文件,才使用了比较简单的 PWM 驱动。通过本章的学习,可以掌握 Linux 驱动常用的代码重用方式。
标签:
原文地址:http://www.cnblogs.com/lijiahui123/p/5638598.html