本节我们研究嵌入式Linux的调试技术,对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。执行完相关的命令后,会要求选择在Ubu ...
分类:
系统相关 时间:
2016-07-03 15:51:12
阅读次数:
218
第八章介绍了第二个实验:蜂鸣器驱动,使开发板发出声音将介绍蜂鸣器的实现原理,并实现一个完整的蜂呜器驱动,通过该驱动可以控制蜂鸣器的打开与关闭。 蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣 器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发 ...
分类:
其他好文 时间:
2016-07-03 15:50:24
阅读次数:
116
本节我们研究硬件抽象层:HALHAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。HAL主要有以下目 ...
分类:
其他好文 时间:
2016-07-03 15:48:15
阅读次数:
139
恢复内容开始 HAL是属于Linux内核层上的应用层,增加HAL的主要目的是除了尽量避免应用程序直接访问Linux驱动外,还有一个重要的原因,就是保护“私人财产” 。 编写一个支持HAL的Linux驱动程序的步骤: 第一步编写Linux驱动:linux源代码尽量简洁,尽可能将业务的逻辑放到HAL L ...
分类:
其他好文 时间:
2016-07-03 13:02:21
阅读次数:
137
第九章 硬件抽象层:HAL 本章介绍的是HAL硬件抽象层,他是属于linux内核层之上的应用层,解释了在Android中加入HAL的原因是Google为了满足不想开源的Linux驱动作者的要求,在Android层次结构中的系统运行库层增加了一个HAL,来统一硬件的调用接口,解决GPL版权问题以及一些 ...
分类:
其他好文 时间:
2016-07-03 10:26:02
阅读次数:
183
转载自 http://blog.csdn.net/Luoshengyang/article/category/838604/3 在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5... ...
分类:
编程语言 时间:
2016-07-02 22:51:11
阅读次数:
661
Google为Android加入HAL主要有如下的目的。 统一硬件的调用接口。由于HAL 有标准的调用接口,所以可以利用HAL屏蔽Linux 驱动复杂、不统一的接口。 解决了GPL版权问题。由于Linux 内核基于GPL协议,而Android 基于Apache Licence 2 . 0、协议。因此 ...
分类:
移动开发 时间:
2016-07-02 20:19:56
阅读次数:
136
printk函数的用法于-printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间。也就是说,像Linux 驱动这样的Linux内核程序只能使用printk 函数输出调试信息 虽然使用printk 函数可以很方便地将消息写入日志文件或控制台。但大量使用print ...
分类:
移动开发 时间:
2016-07-02 20:14:28
阅读次数:
165
通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成。这也是大多数 Linux 驱动的标准实现方式. 刚开始是LED驱动的代码重用,Linux 驱动的代码重用有很多种方法。可以采用标准 C程序的方式。将要重用的代 ...
分类:
移动开发 时间:
2016-07-02 20:13:55
阅读次数:
225
第9章 HAL是建立在Linux驱动之上的一套程序库,是属于Linux内核层之上的应用层。 传统的Linux系统中Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑代码。 Android加入HAL主要有以下目的: 1.统一硬件的调用接口 2.解决了GPL版权问题 3.针对一些特殊的要 ...
分类:
其他好文 时间:
2016-07-02 15:49:24
阅读次数:
127