Goggle为Android 加入HAL主要有如下目的: 统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口。 解决了GPL版权问题。由于 Linux 内核基于GPL协议,而Android基于Apache Licence 2 . 0协议。 针对一些 ...
分类:
其他好文 时间:
2016-07-09 17:54:42
阅读次数:
139
主要看一下:Linux驱动代码重用 对于复杂的 Linux 驱 动,就需要使用多个源代码文件存放不同的功能代码,这样做有利于代码分类和管理。 C或C++语言中编译多个源代码文件时,如果a.c使用 b.c文件中的函数,需要在 a.c 文件中使用 extern 预先定义 b.c中的函数, extern ...
分类:
其他好文 时间:
2016-07-09 17:44:03
阅读次数:
173
蜂鸣器是s3c6410开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。 在前面的章节编写了两个完整的linux驱动:word_count驱动和led驱动,两个有一共同点就是都有一个源代码文件组成。 代码重用分为静态和动态两种。即将需要重要的代码使用者放在一起进行编译,最 ...
分类:
系统相关 时间:
2016-07-09 08:13:27
阅读次数:
227
编写linux驱动程序的步骤 第一步:建立linux驱动骨架(装载和卸载linux驱动) 第二步:注册和注销设备文件 第三步:指定与驱动相关的信息 第四步:指定回掉函数 第五步:编写业务逻辑 第六步:编写makefile文件 第七步:编写linux驱动程序 第八步:安装和卸载linux驱动 Prin ...
分类:
其他好文 时间:
2016-07-09 08:13:17
阅读次数:
164
这一章的主要内容是让开发板发出声音——蜂鸣器驱动,在Linux驱动开发中重点也学习了这一部分内容,同时最后我们小组的考核内容是通过中断控制蜂鸣器发七个音符的音。 这一部分中,要中断控制蜂鸣器,在中断和蜂鸣器代码的基础上进行增加。中断与蜂鸣器的代码不变,在中断的测试代码中,首先要定义七个音符,之后将开 ...
分类:
其他好文 时间:
2016-07-08 23:25:24
阅读次数:
406
本章的主要内容是硬件抽象层:HAL。本章中了解的是编写HAL的Linux驱动程序的步骤,具体如下: 第一步:编写Linux驱动 “编写Linux驱动”,从表面上看没什么意义,但如果要为Linux驱动添加HAL,而且像尽量保护敏感数据。Linux驱动的代码就要尽量简洁,尽可能将业务逻辑放到HAL Li ...
分类:
其他好文 时间:
2016-07-08 23:12:51
阅读次数:
181
本章的主要内容是嵌入式Linux的调试技术。对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。 一、打印内核调试信息:printk 该函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。像Linux驱动这样的Linux内核程序 ...
分类:
系统相关 时间:
2016-07-08 23:06:36
阅读次数:
178
第八章 让开发板发出声音:蜂鸣器驱动 linux驱动的代码重用有很多种方法。可以采用标准C 程序的方式。将要重用的代码放在其他的文件(在头文件中声明〉中。如果要使用某些功能, include 相应的头文件即可〈这.方式称为静态重用〉。也可以使用另外一种动态重用的方式,也就是一个Linux 驱动可以使 ...
分类:
移动开发 时间:
2016-07-08 21:53:44
阅读次数:
277
《Android深度探索》第十章讲的是嵌入式Linux的调试技术。对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行测试。 printk函数的用法和printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这 样的Linux ...
分类:
系统相关 时间:
2016-07-08 19:54:39
阅读次数:
181
《Android深度探索》第九章讲的是硬件抽象层:HAL。HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属 于Linux内核层之上的应用层。Google为Android加入HAL主要的目的:统一硬件的调用接口;解决了GPL版权问题;针对一些特殊的要求。 编写一款 ...
分类:
其他好文 时间:
2016-07-08 19:54:26
阅读次数:
134