第十章 嵌入式Linux的调用技术
HAL是建立在Linux驱动之上的一套程序库,这套程序库并不属于Linux内核,而属于linux内核层之上的应用层。
在本章中还介绍了为什么要在Android中加入HAL,统一硬件的调用接口,由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口;解决了GPL版权问题。这样这些敏感的代码就摆脱了GPL协议的束缚,那些不想开源的Linux驱动作者也就没必要开源了;针对一些特殊的要求。
还介绍了Android HAL架构,为LED驱动增加HAL,编写一款支持HAL的Linux驱动程序的步骤:1.编写Linux驱动;2.编写HAL Library;3.编写Service Library 尽管这些并不是必需的,但新的HAL架构要求这样做,Service Library也是Linux Library这一步比较灵活。
测试读写寄存器操作,在编写Linux驱动以及驱动相关的程序过程中应分段测试每一部分程序。在本小节中将编写一个由于测试上一节实现的LED驱动的程序,由于LED驱动程序的设备文件写入字节形成的数据。或从设备文件中读取字节类型的数据。为了通用。本节实现的测试测试程序通过命令行参数来传递设备文件名、字节数和要传递的字节等信息。
Android在启动时会自动装载这些属性文件。如果在多个属性文件中都定义了同一个Key和Value,那么只用第一个Key被获取。
编写调用Service的Java库,为了是程序更易于使用,可以将调用Service程序库的Java类单独封装在jar文件中,这样做任何的Android应用程序中只要引用了这个jar文件就可以向调用普通Java类一样访问LED驱动了。
第十章 嵌入式Linux的调用技术的更多相关文章
- 第十章 嵌入式Linux的调试技术
对调试工具进行简介.Linux中提供了一类工具,通过这些工具可以逐行跟踪程序的代码,用于测试用户空间程序的gdb.gdbserver和调试内核空间程序的kgdb. 用gdb调试用户空间程序:gdb可跟 ...
- 嵌入式Linux的调试技术
本节我们研究嵌入式Linux的调试技术,对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试.刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过p ...
- 第10章 嵌入式Linux 的调试技术
10.1 打印内核调试信息:printk printk位函数运行在内核空间, printf函数运行在用户空间.也就是说,像Linux 驱动这样的Linux内核程序只能使用printk函数输出调试信息 ...
- 第10章 嵌入式Linux的调试技术
printk函数运行在内核空间,printf函数运行在用户空间.也就是说像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息.printk函数在控制台(也称终端)显示消息是通过 ...
- 是否要从单片机转为嵌入式Linux?
作者:嵌入式老鸟火哥 授权转载于公众号嵌入式老鸟的职场之道(ID: ict_embedded),有增加内容和修改. 最近很多童鞋投票并咨询如何从单片机转为嵌入式Linux开发.看来读者圈中做单片机,R ...
- 8月11日嵌入式Linux开发免费项目体验邀您参与
嵌入式Linux开发免费项目体验开课啦~~我们特意邀请到粤嵌金牌讲师和技术专家,为大家带来精彩有趣的嵌入式公开课,涉及到嵌入式学习.研发的方方面面.课堂中我们能体验到的不仅仅是最新资讯.技术体验,还有 ...
- linux内核调试技术之printk
原创博客:欢迎转载,转载请注明出处https://i.cnblogs.com/EditPosts.aspx?postid=6218383 1.简介(基于s3c2440 linux) 在内核调试技术之中 ...
- 嵌入式 Linux 应用:概述
转载:http://www.ibm.com/developerworks/cn/linux/embed/embl/overview/index.html 从腕表到基于群集的超级计算机 在对嵌入式 ...
- 《嵌入式Linux内存使用与性能优化》笔记
这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相比,无论是技术层次还是更高的理论都有较大差距.但是这不影 ...
随机推荐
- ssh base 写法
BaseDao package wl.oa.dao.base; public interface BaseDao<T>{ public void saveEntry(T t); } Bas ...
- OC基础--Property
编译器指令: 用来告诉编译器要做什么 @property: @property是编译器的指令 告诉编译器在@interface中自动生成setter和getter的声明 @synthesize: @s ...
- Jupyter notebook 配置目录
默认打开Jupyter notebook,工作目录是C:\Users\Username,这里面有很多其它与Jupyter notebook无关的文件,也很有用,不能看着烦就删掉,所以需要修改Jupyt ...
- 在CDH5.5.0上安装Kudu6.0
1. 下载安装文件: a. CSD文件:KUDU-0.6.0.jar b. kudu parcel:KUDU-0.6.0-1.kudu0.6.0.p0.334-el6.parcel和manifest. ...
- selenium+python环境搭建
1.安装python-2.7.3.msi 2.安装pywin32-216.win32-py2.7.exe 3.下selenium包,selenium-2.35.0.tar.gz,放到D:\autote ...
- CSS之照片集效果
代码: <!DOCTYPE html><html><head> <title>照片影集</title> <meta charset=& ...
- Percona Server 5.6.33-79.0 发布
Percona Server 5.6.33-79.0 发布了,该版本基于 MySQL 5.6.33,包含了所有的 bug 修复,是Percona Server 5.6 系列中的正式版本.该版本主要是修 ...
- yum源的搭建
1.光盘的挂载 2.先创建一个文件 /aaa 然后挂载mount /dev/cdrom /aaa 进入 /aaa ls 查看是否挂载OK 3.进入yum文件夹.将除Media以外的所有文件名改为X ...
- GoldenGate针对OEM 13.1的版本发布
OGG 针对OEM(Oracle Enterprise Manager) 13.1的插件已经可以从这里下载: http://www.oracle.com/technetwork/middleware/ ...
- [zz]求一维序列的信息熵(香浓熵)的matlab程序实例
对于一个二维信号,比如灰度图像,灰度值的范围是0-255,因此只要根据像素灰度值(0-255)出现的概率,就可以计算出信息熵. 但是,对于一个一维信号,比如说心电信号,数据值的范围并不是确定的, ...