Android深度探索--HAL与驱动开发第八章读后感

本章介绍蜂鸣器的实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣器),蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。

在完成过程中,首先完成的是linux驱动的代码重用,首先是编译由多个文件组成的linux驱动,并生成ko文件,最后makefile文件。然后进行驱动模块的依赖,即在一个驱动模块里使用另一个驱动模块里的背到处的符号。

通过有I/O命令可以打开和停止排位PWM,PWM驱动由三个文件组成,pwm.c驱动主程序,pwm_fun.h相应头文件,pwm_fun.c包含了打开和停止PWM的两个函数。首先进入/root/drivers/ioctl执行build.h脚本文件编译和上传ioctl,在测试前先要编译和安装PWM驱动,然后进入开发板终端的/data/local打开和停止PWM。

PWM时驱动的实现方式不同于LED 驱动,PWM 驱动将由多个文件组成。这也是大多数Linux 驱动的标准实现方式。在编译 Linux 驱动时将这些文件进行联合编译。本节将介绍把 Linux 驱动分成多个文件的方式。这些文件中的数据结构、函数的代码也可以被多个不同的驱动使用,所以这也是代码重用的重要方法。 PWM 驱动与 LED 驱动的实现流程类似,可能还要简单一些。在本章只是为了演示如何将一个 Linux 驱动分成多个实现文件,才使用了比较简单的 PWM 驱动。

PWM驱动与LED类似,可能还要简单一些,这章使用PWM驱动主要是为了更为简单一下的将一个Linux驱动分为多个实现文件,通过本章学习,也进一步掌握了代码重用方法和强行卸载Linux驱动的方法,可以不用在不断的重启机器了。

原文地址:https://www.cnblogs.com/cui8171/p/5641036.html