为什么要在Android中加入HAL 1.统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口。 2.解决了GPL版权问题。由于Linux内核基于GPL协议,而Android基于Apache Licence 2.0协议。因此Google玩了个“穿越” ...
分类:
移动开发 时间:
2016-07-07 19:29:06
阅读次数:
204
通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成。这也是大多数 Linux 驱动的标准实现方式. 刚开始是LED驱动的代码重用,Linux 驱动的代码重用有很多种方法。可以采用标准 C程序的方式。将要重用的代 ...
分类:
移动开发 时间:
2016-07-07 09:54:12
阅读次数:
222
对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行测试。如设置断点,逐步跟踪代码,输出调试信息等。本章主要讲述了如何利用开发板、Android模拟器以及一些函数、工具调试嵌入式Linux内核模块、可执行程序和共享库。 1.打印内核调试信息:printk 该函数的用法和printf函 ...
分类:
移动开发 时间:
2016-07-07 09:51:35
阅读次数:
194
本章主要讲硬件抽象层:HAL.HAL 是建立在linux 驱动之上的一套程序库,Google为Android加入HAL主要如下的目的。 1.统一硬件的调用接口 2.解决了GPI版权的问题 3.针对一些特殊的要求 在LED的驱动中,我们加入HAL使用程序不需要关心Linux驱动和设备文件的交互方式。编 ...
分类:
移动开发 时间:
2016-07-07 09:46:17
阅读次数:
202
第九章: 只要讲的是硬件抽象层HAL,HAL是建立在Linux驱动上的一套程序库。HAL不是Linux内核的一部分而是位于Android的系统运行库层。首先讲的是要加入HAL的好处。包括:统一硬件的调用借口、解决GPL版权问题、针对一些特殊的要求。HAL架构的基本原理是在Android系统中使用程序 ...
分类:
移动开发 时间:
2016-07-06 23:27:32
阅读次数:
301
第8章: 本章主要讲了蜂鸣器的实现原理,实现完整的蜂鸣器驱动。主要用到的是pwm驱动,pwm由多个文件组成。 首要介绍的是Linux驱动代码的重用。编译是由多个文件组成的Linux驱动。两个完整的linux驱动是word_count和led驱动,都是由一个源代码文件组成(.c)。但对于复杂的linu ...
分类:
移动开发 时间:
2016-07-06 23:14:51
阅读次数:
243
本章主要讲Linux调试技术。打印内核调试信息:printk,printk函数运行在内核空间,linux内核程序只能使用printk函数输出调试信息。printk文件由一个4个数字组成文本文件。6:将消息输出到控制台的级别。4:默认的消息日志级别。1:控制台日志级别可被设置的最小值。7:控制台日志级 ...
分类:
移动开发 时间:
2016-07-06 23:10:11
阅读次数:
247
硬件抽象层:HAL Google为Android加入HAL主要有如下的目的: 1.统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用 HAL屏蔽Linux驱动复杂、不统一的接口; 2.解决了GPL版权问题。由于Linux内核基于GPL协议,而Android基于Apache Licence ...
分类:
移动开发 时间:
2016-07-05 18:53:16
阅读次数:
172
嵌入式Linux的调试技术 打印内核调试信息:printk 该函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用 printk函数输出调试信息。 Printk函数在printk.c文件中实 ...
分类:
移动开发 时间:
2016-07-05 18:44:38
阅读次数:
145
PWM蜂鸣器驱动 C或C++语言中编译多个源代码文件时,如果a.c使用了b.c文件中的函数,需要a.c文件中使用 extern预先定义b.c中的函数,extern的作用就是告诉编译器该函数的函数名、参数个数、参数类型和返回值类型。这些信息对于将a.c编译成a.o已经足够了,等到将a.o和 b.o 链 ...
分类:
移动开发 时间:
2016-07-05 17:08:08
阅读次数:
165