代码改变世界

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

2016-04-27 12:30  L.PY  阅读(110)  评论(0编辑  收藏  举报

                                                                              第一章 Android系统移植与驱动开法

1.1  Android系统架构包括四层:第一层:Linux内核(主要包括驱动程序以及管理内存、进程、电源等资源的程序),第二层:C/C++代码库(主要包括Linux的,so文件以及嵌入到spk程序中的dnk代码),第三层:Android SDK API(直接面向应用程序的Java APK),第四层:应用程序(面向最终用户的Java应用程序);

1.2  Android系统移植可分为两部分:应用移植和系统移植.  应用移植是将第四层的应用程序移植到某一个特定硬件平台。为了保证应用可以在新硬件平台正常的运行,一般要在源代码的基础上进行一些修改。
     系统移植是让安卓操作系统在某特定的硬件平台上运行。它要求的条件是这个系统支持硬件平台的CPU架构,而且要让安卓可以识别平台上的各种硬件。工作主要由Linux内核完成。(cpu架构移植,Linux驱动移植)
     HAL指硬件抽象层。它位于第二层。在安卓中,应用程序在访问驱动是中间还有一层HAL。HAL的存在为了将Linux驱动业务逻辑放到HAL层,因为厂商不想开放源代码。统移植重点在与硬件抽象层(HAl).Andriod系统移植主要包括:移植Linux驱动和移植HAL;

1.3  查看内核版本的方法  方法一:在终端执行:uname -a

                           方法二:在终端执行:cat /proc/version

 

1.4  Linux的内核版本号由主版本号,次版本号,修订版本号,微调版本号,为特定的Linux系统特别调校的描述

1.5  如何学习驱动开发:准备一个自己熟悉的Linux操作系统,用于开发和测试Linux驱动

                                准备一块开发板

                                学习GNU C

                                学习相关硬件知识

                                不断的实践

1.6  Linux设备驱动的作用 Linux将存储器和外设分为三类:字符设备,块设备,网络设备

1.7  linux驱动实例:控制S3C6410开发板上的四个LED灯 (属于字符设备驱动)

1.8  Linux驱动只与Linux内核有关,与用户使用的Linux系统无关。学习Android驱动开发其实就是学习Linux驱动开发这是增加了一个HAL

http://www.cnblogs.com/lupengyong/