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

在课下我学习了Android深度探索(卷一)这本书。该课本的第一章节,详细介绍了如何搭建和使用Ubuntn Linux12.04 LTS、Android模拟器和S3C6410开发板。

首先,我知道了Android是一个非常优秀的嵌入式操作系统。Android的系统架构分为四层:Linux内核、c/c++代码库、Android SDK API和应用程序。

其次,是Android系统的移植。Android移植分为两部分:应用移植和系统移植。应用移植是指将应用程序层的应用程序移植到某一个特定的硬件平台上。系统移植指的是让Android操作系统在某一个特定的硬件平台上运行。除了Linux驱动需要移植外,在安卓系统中还增加了一个硬件抽象层(HAL,Hardware Abstraction Layer)。Android由应用程序通过HAL层来访问驱动。所以,在安卓移植的主要工作为移植Liunx驱动和移植HAL。

之后呢,介绍了怎么查看Linux内核版本和Linux内核版本号的定义规则。目前linux内核主要维护的版本有Ubuntn Linux12.04 LTS、Android模拟器和S3C6410开发板。查看版本有两种办法。1 在终端输入命令 cat /proc/version。2 在终端输入命令:uname -a。linux内核版本号由主版本号、此版本号、修订版本号、微调版本号和为特定的linux系统特别调校的描述组成。

在对Android有了一定的了解了,就开始了怎样去学习Linux驱动开发。学习LIUNX驱动需要准备一个自己熟悉的Liunx操作系统、开发板、学习GUN C和相关的硬件知识以及实践。

最后就是Linux设备驱动了。学到了驱动的发展、作用、分类及特点。然后就是通过LED实例更深入了解liunx驱动。

http://www.cnblogs.com/qian950609/

时间: 2024-10-12 22:21:34

Android深度探索(卷一):HAL与驱动开发第一章节读书笔记的相关文章

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

1.1   Android拥有非常完善的系统构架可以分为四层: 第一层:Linux内核.主要包括驱动程序以及管理内存.进程.电源等资源的程序 第二层:C/C++代码库.主要包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:android SDK API 直接面向应用程序的Java APK 第四层:应用程序.直接面向最终用户的Java应用程序 1.2  Android系统移植的主要工作 Android移植可以分为应用移植和系统移植两个部分.(本书对移植没有太多的介绍) Andr

Android系统移植与驱动开发第一章读书笔记

最近,认真学习了Android深度探索的第一章内容——Android系统移植与驱动开发概述,了解了Android是基于Linux内核的.这一章作为学习Linux驱动的基础,对Android以及Linux驱动做了总体的介绍,为之后的学习打下良好的基础. Android作为优秀的嵌入式操作系统,其系统架构可分为四层,通过学习,清楚的明白了每一层的作用以及功能.Android移植可分为两部分:应用移植和系统移植.应用移植是指将应用程序移植到某一个特定硬件平台上.系统移植是指让Android操作系统在某

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

对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行测试.如设置断点,逐步跟踪代码,输出调试信息等.本章主要讲述了如何利用开发板.Android模拟器以及一些函数.工具调试嵌入式Linux内核模块.可执行程序和共享库. 1.打印内核调试信息:printk 该函数的用法和printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间.函数原型: asmlinkage printk(const char *fmt, ...) 第一个参数表示格式字符串.后面

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

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

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

通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是LED驱动的代码重用,Linux 驱动的代码重用有很多种方法.可以采用标准 C程序的方式.将要重用的代码放在其他 的文件 (在头文件中声明〉中. 如果要使用某些功能, include 相应的头文件即可〈这种方式称为 静态重用〉.也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可以使用另外

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

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

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

通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是LED驱动的代码重用,Linux 驱动的代码重用有很多种方法.可以采用标准 C程序的方式.将要重用的代码放在其他 的文件 (在头文件中声明〉中. 如果要使用某些功能, include 相应的头文件即可〈这种方式称为 静态重用〉.也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可以使用另外

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

printk函数的用法于-printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间.也就是说,像Linux 驱动这样的Linux内核程序只能使用printk 函数输出调试信息 虽然使用printk 函数可以很方便地将消息写入日志文件或控制台.但大量使用printk 函数频繁操作日志文件或控制台设备文件Udev/console)会严重影响Linux 驱动的性能(因为写磁盘的速度远没有读写内存的速度快〉,因此,这就要求Linux 驱动只在开发阶段使用printk

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

1. 底层开发工具包括: JDk6或者以上版本:Eclipse3.4或以上版本:ADT(用于开发Android应用程序),CDT(用于开发AndroidNDK程序):Android SDK:Android NDK:交叉编译环境 :Android源代:用于调试开发板的串口工具:minicom. 2. Linux下如何安装JDK 创建安装目录,在/usr/java下建立安装路径,并将文件考到该路径下: # mkdir /usr/java jdk-6u11-linux-i586.bin 这个是自解压的