心得体会:本章主要讲嵌入式Linux的调试技术。对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。执行完相关的命令后,会要求选择 ...
分类:
其他好文 时间:
2016-07-06 14:39:52
阅读次数:
135
HAL ( Hardware Abstraction Layer,硬件抽象层)是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。 在android中加入HAL的目的: 1.统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL ...
分类:
其他好文 时间:
2016-07-05 20:25:26
阅读次数:
181
硬件抽象层: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
第9章:硬件抽象层HAL 1.HAL ( Hardware Abstraction Layer,硬件抽象层) 是建立在Linux驱动之上的一套翻字库。这套程序库并不属于 Linux 内核, 而是属于 Linux 内核层之上的应用层。 2.编写一款支持 HAL 的 Linux 驱动程序的步骤 编写一款 ...
分类:
其他好文 时间:
2016-07-05 18:37:57
阅读次数:
95
第10章:嵌入式Linux的调试技术 对于复杂的Linux驱动及HAL等程序库, 需要使用各种方法对其进行调试。例如, 设置断点、逐步跟踪代码、输出调试信息等。 一、打印内核调试信息:printk printk函数在前面的章节己多次使用过。该函数的用法与printf函数类似,只不过printk函数运 ...
分类:
系统相关 时间:
2016-07-05 18:36:32
阅读次数:
194
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
第九章 HAL是属于Linux内核层上的应用层,增加HAL的主要目的是除了尽量避免应用程序直接访问Linux驱动外,还有一个重要的原因,就是保护“私人财产” 。 编写一个支持HAL的Linux驱动程序的步骤:第一步编写Linux驱动:linux源代码尽量简洁,尽可能将业务的逻辑放到HAL Libra ...
分类:
其他好文 时间:
2016-07-05 11:48:13
阅读次数:
148
看了本书第九章,我学习到了: 总结:1)统一硬件的调用接口。2)解决GPL版权问题:由于linux、android分别基于不同的协议(GPL、Apache Licence2.0),增加HAL可使敏感代码摆脱GPL协议。3)利用位于用户空间的HAL代码辅助linux驱动完成一些特殊要求。 ① 最初架构 ...
分类:
移动开发 时间:
2016-07-05 01:03:54
阅读次数:
213
对于复杂的linux驱动及HAL等程序库,需要使用各种方法对其进行调试。首先接介绍使用printk函数,该函数与printf函数类似,printk函数运行在内核空间,printf函数运行在用户空间。Printk函数的原型:asmlinkage int printk(const char *fmt, ...
分类:
移动开发 时间:
2016-07-05 01:00:46
阅读次数:
218