第九章 读书笔记

第九章 硬件抽象层 HAL

在传统的Linux.系统中Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑有码。对于访问硬件寄存器的代码,并没有什么秘密可言,因为这都是调用的 Linux 内核的标准函数进行的标准操作4 而Linux驱动的业务逻辑部分对击有些企业或个人并不想将源代码公开。尽管这些Lipux.驱动都是免费给用户使用的,由于这些Linux 驱动的实现涉及一些,技术专利或商业秘窑,如果公开源代码会有很大麻烦。但作为Linux.驱动,又不得不公开源代码。这 是由于Linux 内核采用了 GPL协议,而GPL协议要求所有使用基于GPL协议的源代码的程序必须开源(由于 Linux 驱动属于 Linux 内核的一部分,因此Linux 驱动必须开源)。

编写一款支持 HAL 的 Linux 驱动程序步骤。

第 1 步:编写 Linux 驱动 “编写 Linux 驱动”,从表明上看是废话,但如果要为 Linux 驱动添加 HAL,而且想尽量保护敏 感数据。 Linux 驱动的代码就要尽量简洁,尽可能将业务逻辑放到 HALLibrary 中。

第 2 步:编写 HAL Library HAL Library。但这类库文件有一个接口。通过 HAL _MODULE_INFO _ SYM 变量实现。 Service Library 就是通过在这个接口中定义的 ID 定位 HAL Library 的。

第 3 步:编写 Service Library 。尽管这步并不是必需的,但新的 HAL 架构要求我们这样做。 Service Library 也是 Linux Library。 这一步比较灵活。 Service Library 可以是一般的 Linux Library,也可以是别I Library。

http://www.cnblogs.com/yangsasa/

时间: 2024-10-10 09:06:16

第九章 读书笔记的相关文章

Android深度探索——第九章读书笔记及心得

HAL模块 ——第9章读书笔记及心得 通过本章学习学会了Android中特有的与linux驱动交互的方法,即通过HAL模块.HAL模块本质上就是通过linux共享库(.so)与linux交互驱动,然后利用应用程序再访问linux共享库.每一个HAL共享库指定一个ID,在利用这个ID配合一定的规则找到linux共享库.知道了HAL对于Android的意义.知道了Android HAL的架构. HAL是建立在linux驱动之上的一套不属于linux内核的程序库.它属于linux内核层之上的应用层.H

第九章读书笔记

Linux.系统中Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑有 码.对于访问硬件寄存器的代码,并没有什么秘密可言,因为这都是调用的 Linux 内核的标准函数〈如 io位ad32. ·iowrite32等)进行的标准操作4 而Linux驱动的业务逻辑部分对击有些企业或个人并不想-- 将源代码公开.尽管这些Lipux.驱动都是免费给用户’使用的, {g由于这些Linux 驱动的实现涉及一些 , . 技术专利或商业秘窑,如果公开源代码会有很大麻烦.但作为Linux.驱动,h又

Android深度探索(卷1)HAL与驱动开发第九章读书笔记

本章主要讲硬件抽象层:HAL.HAL 是建立在linux 驱动之上的一套程序库,Google为Android加入HAL主要如下的目的. 1.统一硬件的调用接口 2.解决了GPI版权的问题 3.针对一些特殊的要求 在LED的驱动中,我们加入HAL使用程序不需要关心Linux驱动和设备文件的交互方式.编写一款支持HAL的linux驱动程序的步骤: 第一步:编写linux驱动 第二步:编写 HAL Library 第三步:编写Service library 编写HAL模块的步骤和原理如下: 第一步:定

Andriod深度探索—HAL与驱动开发 第九 章 读书笔记and一点心得

HAL是建立在Linux驱动上的一套程序库.这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层.Google为Android增加HAL的主要目的除了尽量避免应用程序直接访问Linux驱动外,还有一个重要原因,那就是保护“私人财产”. Google为Abdroid加入HAL主要有如下目的: 统一硬件的调试接口. 解决了GPL版权问题. 针对一些特殊要求. 编写一款支持HAL的Linux驱动程序的步骤 第一步:编写Linux驱动 第二步:编写HAL Libray 第三步:编写 S

Android深度探索--HAL与驱动开发----第九章读书笔记

Google为Android加入HAL主要有如下的目的. 统一硬件的调用接口.由于HAL 有标准的调用接口,所以可以利用HAL屏蔽Linux 驱动复杂.不统一的接口. 解决了GPL版权问题.由于Linux 内核基于GPL协议,而Android 基于Apache Licence 2 . 0.协议.因此Google 玩了个“穿越“,将原本位于Linux驱动中的敏感代码向上移了一个层次.这样这些敏感代码就摆脱了GPL 协议的束缚, 那些不想开源的Linux驱动作者也就没必要开源了. 针对一些特殊的要求

《内核设计与实现》第一章读书笔记

<内核设计与实现>第一章读书笔记 第一章:Linux内核简介 1.1 Unix的历史 Unix强大的特点 A.简洁,几百个系统调用,明确的设计目的 B.文件对待所有东西 C.移植性强(C语言) D.进程创建快,使用fork()系统调用. E.进程间通信元语,进程间通信机制 1.2 linux的简介 Linux系统的基础是内核.C库.工具库和系统的基本工具. 1.3 操作系统和内核简介 内核:管理者,操作系统的核心 通常一个内核由负责响应中断的中断服务程序和网络.进程间通信等系统服务共同组成.

Android深度探索——第二章读书笔记及心得

Android开发环境搭建 ——第二章读书笔记及心得 通过本章的学习了解了如何对Ubuntu Linux下的Android进行搭建,包括搭建Android应用程序开发环境.Android NDK开发环境和交叉编译环境的搭建.了解了搭建Android环境所需要的各种东西,了解了配置ADT的必要性—以便ADT能够找到Android SDK.知道了底层开发所需要的各种工具.学会了如何在Ubuntu下安装JDK.以及编译交叉编译环境,当初在学习Linux交叉环境编译的时候就不是特别成功,中间出了很多的错

Android深度探索——第四章读书笔记及心得

源代码的下载及编译 ——第四章读书笔记及心得 通过阅读书籍知道了Android源代码和Linux源代码的区别,了解了什么是Android移植.知道了Android移植就是Linux内核移植,而Linux内核移植主要就是Linux的驱动移植.为了开发和测试内核环境需要对环境进行搭建,进而知道了如何搭建环境.知道了如何下载Android/Linux源代码及配置Android源代码下载环境(并且知道Android源代码的下载并非一定要将4MB多的东西全部下载,也可以挑选着自己需要的东西下载,,可以利用

Android深度探索——第三章读书笔记及心得

了解Git ——第三章读书笔记及心得 对于Android的理解是从这学期才开始,所以不可谓说是了解的太少太少.对于Linux虽然经过了一学期的学习.经过一次紧张的实训,但是了解的也不是很多.不过我终究是知道Android和Linux是开源的,这是很多老师都曾经告诉我们的.虽然Git并不是学习Android和Linux开发必须掌握的技术,但是对于想要认真学习好这门技术的我们来说应该要努力掌握好这门技术.就像书上说的学习新技术的方式不是一味的读书,只会纸上谈兵.更应该深入的理解自己感兴趣的源代码,通