第8章: 本章主要讲了蜂鸣器的实现原理,实现完整的蜂鸣器驱动。主要用到的是pwm驱动,pwm由多个文件组成。 首要介绍的是Linux驱动代码的重用。编译是由多个文件组成的Linux驱动。两个完整的linux驱动是word_count和led驱动,都是由一个源代码文件组成(.c)。但对于复杂的linu ...
分类:
移动开发 时间:
2016-07-06 23:14:51
阅读次数:
243
一、为什么要在Android中加入HAL 统一硬件的调用接口、解决了GPL版权问题、针对一些特殊的要求。 二、为LED驱动增加HAL 1.编写一款支持HAL的Linux驱动程序的步骤 第1步:编写Linux驱动 第2步:编写HAL Library 第3步:编写Service Library 2.精简 ...
分类:
其他好文 时间:
2016-07-06 21:46:26
阅读次数:
142
第7章 LED将为我闪烁:控制发光二极管 本章会完成一个真正意义上的Linux驱动。该linux驱动用来控制开发板上的4个LED灯。也就是说通过向linux驱动发送数据可以控制LED小灯的开关。 一、LED驱动的实现与原理 尽管Linux 驱动直接与硬件打交道, 但并不是 Linux 驱动直接向硬件 ...
分类:
其他好文 时间:
2016-07-05 16:59:27
阅读次数:
105
刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。下一个小节讲了Android HAL 架构。接下来讲了为led驱动增加HAL,主要是将所有的业务逻 ...
分类:
其他好文 时间:
2016-07-04 21:58:13
阅读次数:
165
在这一章中,我们得知了Linux内核提供了多个与I/O内存交互的函数,比如ioread16、ioread32、iowrite16、iowrite32等,Linux内核的内存管理模块负责同步I/O内存与硬件中的数据。 每一个连接Linux的硬件在I/O内存中都会有映射地址。由于LED驱动只能在S3C开 ...
分类:
移动开发 时间:
2016-07-04 21:50:43
阅读次数:
138
蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣 器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打 开和关闭。PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组 ...
分类:
移动开发 时间:
2016-07-04 18:28:47
阅读次数:
157
蜂鸣器是S3C6410 开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。4:节将介绍蜂鸣器的实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣器). PW时驱动的实现方式不同于LED 驱动, PWM 驱动将由多个文件组成。这也是大多数Linux驱动的标准实现方式. ...
分类:
其他好文 时间:
2016-07-04 13:38:10
阅读次数:
138
刚开始是LED驱动的代码重用,Linux 驱动的代码重用有很多种方法。可以采用标准 C程序的方式。将要重用的代码放在其他 的文件 (在头文件中声明〉中。 如果要使用某些功能, include 相应的头文件即可〈这种方式称为 静态重用〉。也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可 ...
分类:
其他好文 时间:
2016-07-04 11:48:45
阅读次数:
93
HAL ( Hardware Abstraction Layer,硬件抽象腔,是建立在Linux驱动之上的一套翻字库。这套程序并不属于 Linux 内核, 而是属于 Linux 内核层之上的应用层。 Google 为 Android 增加 HAL 的主要目的除了尽量避免应用程序直接访问 Linux ...
分类:
其他好文 时间:
2016-07-03 21:42:51
阅读次数:
177
本章实现的LED驱动包含了Linux驱动、HAL模块、Service程序库、NDK程序和Java程序。 支持HAL的Linux驱动程序步骤如下: 1.编写Linux驱动; 2.编写HAL Library; 3.编写Service Library; 编写HAL模块的步骤和原理如下。 第一步:定义结构体 ...
分类:
其他好文 时间:
2016-07-03 19:06:44
阅读次数:
122