第十章 对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试,例如,设置断点、逐步跟踪代码、输出调试信息等。 1.Printk函数运行在内核空间,printf函数运行在用户空间。 初始化Linux驱动:Static int _init printk_demo_init(void); ...
分类:
移动开发 时间:
2016-07-07 16:54:58
阅读次数:
192
本章介绍了——HAL(硬件抽象层),建立在linux驱动之上的一套程序库。它并不属于linux内核,而是属于linux内核层之上的应用层。 Google为了满足这些不想开源的linux驱动作者的要求,在android层次结构中的运行库层增加了一个HAL,从而统一硬件的调用接口,解决了GPL版权问题并 ...
分类:
其他好文 时间:
2016-07-07 12:32:42
阅读次数:
107
通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. 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
一、为什么要在Android中加入HAL 统一硬件的调用接口、解决了GPL版权问题、针对一些特殊的要求。 二、为LED驱动增加HAL 1.编写一款支持HAL的Linux驱动程序的步骤 第1步:编写Linux驱动 第2步:编写HAL Library 第3步:编写Service Library 2.精简 ...
分类:
其他好文 时间:
2016-07-06 21:46:26
阅读次数:
142
心得体会:本章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。下一个小节讲了A ...
分类:
其他好文 时间:
2016-07-06 14:43:09
阅读次数:
175