android系统在beagleboard上的移植_第1页
android系统在beagleboard上的移植_第2页
android系统在beagleboard上的移植_第3页
android系统在beagleboard上的移植_第4页
android系统在beagleboard上的移植_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、科技学院 2011 届本科Android 系统在 Beagoard 上的移植专业: 电子信息科学与技术指导教师:周 骅:学生学生学号:072004110484中国贵阳2011 年 5 月目 录目录I摘要IIIAbstractIV第一章绪论1前言11.1课题背景及国内外研究情况课题背景11.2.2国内外研究情况概括2智能操作系统简介智能系统特点21.3.2智能系统发展趋势2Android 的优势31.4Beagoard 开发的特点及优势41.5本文工作安排41.6第二章移植开发概述6Android 的体系结构与设计实现Android 体系结构

2、简介62.1.2Android 架构图72.1.3应用框架(Application Frameworks)82.1.4Linux 内核92.1.5库类9Android Runtime (Android 运行时组件)102.2第三章Beagledoard 开发板11开发板简介113.1Beagoard OMAP3530 介绍OMAP3530 特性123.2.2OMAP3530 的好处12第四章 系统移植13Android 系统.1Android 的 API13移植U-boot 的体系结构14环境搭建154.3移植步骤交

3、叉编译 U-boot174.4.2Linux kernel 的移植174.4.3获取 Android 源代码234.4.4配置并编译 Android254.4.5文件系统的建立284.4.6系统功能测试29第五章总结、展望31参考文献32致谢33Android 系统在 Beagoard 上的移植摘要自从开发Android 系统后,很快引起了全世界社群的积极参予,由于开源 Android的移动的推出,由,出现了在 OEM 社会利益,也为其他定制 Android 的,如作为上网本,机顶盒,汽车仪表板等。该机器人可用于制作优势多个设备将意味着一个设备开发的应用程序可以很容易地作出可供移植的需要以最小

4、的另一个平台。而且现在很多公司正在或计划推出基于 Android 的智能和平板电脑。Android提供给普通开发者非常灵活的移植空间,本文先介绍智能操作系统的体系结构、特点以及国内外的研究情形,然后基于 Beag oard一 种 开 放 硬 件 的 单 板 计 算 机 。 kernel 的 代 码 在 高 版 本 包 含 了 SBC3530(omap3_stalker) 的板型配置和初始化, OMAP3530 应用处理器: OMAP3 架构、微处理器子系统、高达 720 兆赫的 ARM Cortex- A8 内核、协处理器的 NEONSIMD 的高性能图像,时提供一些简单的 Android 功

5、能拓展。,音频,有助于移植 Android 。同:智能操作系统;Android;Beagoard OMAP3530 Kit;移植Android on The Transplant System in BeagoardAbstractEver sincereleased the software platform for mobile development -Android system, soon attracted the worlds active participation in the free softwarecommunity, the open-source Android p

6、latform for mobile phones launched by,there was significanterest in the OEM community, Customize Android for otherembedded platforms, such as theernet, set-toxes, automobile instrument panels.The robot can be used to make advantage of multiple device platforms will meantapplications developed transp

7、lanion to anothAndroid-based sadevice can easily be made to minimize the need for latform. And now many companies are or plan to launchtablet PCs.Android platformmigration space, this poffers developers a very flexible to the general freedom ofrdescribes the system of smart phone operating systemstr

8、ucture, characteristics and research situation at home and abroad, and then an openhardware Beagoard based singoard computer. kernel verof the codeincluded in the high SBC3530 (omap3_stalker) of the plate configuration andinitialization, OMAP3530 application prosor: OMAP 3 architecture, themicropros

9、or subsystem, up to 720 MHz ARM Cortex - A8 core, the SocietyNEON SIMD prosors, high-performance graphics, audio, help transplant.Android. Android also provides some simple function of expanKeywords:Smart phone operating system,Android,Beagtransplanionoard OMAP3530,第一章绪论1.1前言现代迅猛发展的同时系统也逐渐被大众所熟知,相应的

10、、操作系统也被广泛应用,而且其更新速度也非常的迅速。现代微电子技术的发展,催生了高性能、低功耗、具有强大图形处理能力的微处理器,更使得嵌入式移动设备可以搭载具有完全功能的操作系统。在智能领域,各大厂商都推出了自己独树一帜的智能操作系统,其中比较突出的苹果公司推出的操作系统和推出的 Android 操作系统。Android 作为一个开源的智能,以其开放性和可移植性等优势日益受到大众的欢迎和厂商的青睐。本文首先是对智能操作系统和 Android 做了一个相关的介绍,然后写了一些研究方向和工作侧重点。1.2课题背景及国内外研究情况1.2.1课题背景2008 年 9 月,Android 是了 Andr

11、oid 开放源代码,释出 Android 程序代码。开发的基于 Linux的开源操作系统1。它包括操作系统、用户界面和应用程序 移动往阻碍移动产业创新的专工作所需全部,而且不存在任何以与开放合作开发了Android,它由由 33 家商和电信业组成的推广 Andro 记制造商、的。通过观察,全球为数众多的移动用户从来没有使用过任何基于Android 系统的。的目标是让(移动通讯)不依赖于设备甚至。出于这个目的,Android;通过与全球各地将补充,而不会替代长期以来奉行的移动发展机制造商和移动运营商结成合作伙伴,开发既有用又运行商 T-Mobile USA 在纽约正式发布有的移动服务,并为之推广

12、。第一款 AndroidT-Mobile G1,该是由宏达电子代工制造,是世界第一部使用了 Android 操作系统机,它支持 WCDMA/HSPA 网络,理论速率 7.2Mbps,并支持 Wi-Fi,到目前为止,已经有多款使用 Android 系统的智能,超过 5 万个应用程序。1.2.2国内外研究情况概括Android 是由收购)研究开发,Android 公司(和其他几十个于 2005 年 8 月将公司建立了开放Android 公司。在短短几年时间里,Android系统从一个菜鸟变成今日的巨头,连Steve Paul Jobs(史蒂夫)的苹果也感到了,这让不得不为之折服。目前 Androi

13、d 系统已经发展成了由众多终端产品支持的超大,而应挑起了“开源”与“封闭”争用数量也正以难以置信的速度更新着,看来从论之日起的同时 Android 也开始了辉煌。Android系统内核开发环境一般都是在Windows 或Linux 下完成的。由于 Android 系统的开放性和性,在未来应用必定十分广泛。智能智能操作系统简介系统特点智能的系统特点有以下几点:它具有一般的所有功能,能收发,正常通话等应用功能。它具有PDA 功能,其中包括PIM(个人信息管理),任务安排,浏览网页,多应用。它具备无线接入互联网能力,即 3G 网络或者 CDMA 网络下的CDMA 等。它拥有人性化特点,可根据个人喜好

14、或需要进行扩展的功能。支持第,功能强大,拓展性强。具备开放性的操作系统,在这操作系统上,可以安装的应用程序,而使原有的程序得到更好的,得到无线的扩展2。1.3.2智能系统发展趋势智能系统的发展趋势比较集中的表现在它的开源,电池,Wi-Fi、GPS 应用,安全系统,以及多系统。开源是智能发展的一个新趋势,目前,智能厂商和运营商都宣布了自己的开源或产品。前,刚刚推出了 Android 开源移动计划。电池,电池持续时间是衡量智能的一个重要标准,蓝牙、Wi-Fi、免提等均消耗少量的电量,所以,为使它持续时间延长,应尽量关闭不常用的功能。Wi-Fi,新的 Wi-Fi,可有效降低能耗,延长电池。GPS,G

15、PS 是目前应用比较普遍的全球他智能厂商均推出了支持 GPS 功能,宏达电子、RIM 和其机 产品。他不仅可以帮助用户从A 点走到 B务。点,更重要的是,GPS服务商也推出各种各样的服安全系统,智能着各种安全,如功能锁定、设备锁定、验证、等等。多系统,为多应用,智能需要平衡和个人应用所需功能。1.4Android 的优势现代技术的不断更新,Android 系统在不断更新,其中有五个方面:开放性,挣脱运营商的,丰富的硬件选择,不受任何限制的开发商,以及无缝结合的应用。第一,开放性。在优势方面,Android首先就是其开放性,开放的允许任何移动终端厂商加入到 Android中来。显著的开放性可以使

16、其拥有的开发者,随着用户和应用的日益丰富,一个崭新的也将很快成熟。开发性对于 Android 的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的资源。开放的也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪机。第二,挣脱运营商的。在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从上市,用户可以更加方便地连接网络,运营商的制约减少。随着 EDGE、 HSDPA 这些 2G 至 3G 移动网络的逐步过渡和,随意接入网络已不是运营商口中的笑谈,当你可以通过IM方便地进行即时聊

17、天时,再回想前天价的彩信和图铃业务,就如在一般?互联网巨头推动的 Android 终端天生就有网络特色,将让用户离互联网更近。第三,丰富的硬件选择。这一点还是与 Android的开放性相关,由于Android 的开放性,众多的厂商会推奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至的兼容,好比你从诺基亚Symbian 风格一下改用苹果,同时还可将 Symbian 中优秀的带到上使用、联系人等资料更是可以方便地转移,是不是非常方便呢?第四,不受任何限制的开发商。Android提供给第开发商一个十分宽泛、的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的

18、会诞生。但也有其两面性,、方面的程序和如何控制正是留给 Android 难题之一。第五,无缝结合的应用。如今叱诧互联网的已经走过 10 年度历史,从搜索巨人到全面的互联网渗透,服务如地图、 邮件、搜索等已经成为连接用户和互联网的重要纽带,而 Android将无缝结合这些优秀的服务。1.5Beagoard 开发的特点及优势Beagoard 单板计算机的特点有以下几点:完全独立;有 USB 2.0 接口,DVI-D 接口;SD/MMC 卡的扩充;ARM 的 Cortex-A8 处理器;三维(720P);运行在 2 周,无需风扇;512 的内存。和移动开发而言,以 OMAP3530 为参考,其中包含

19、 ARM 的Cortex- A8 的600MHz,erVR SGX530 的 OpenGL/ ES 三维,TMS320C64x型的 DSP,256MB 的LPDDR,USB2 OTG 功能,JTAG 接口,扩展区,支持 SD/MMC 卡,以及 1200 的DMIPS。对于者而言物美价廉,且可以自己动手操作,自己进行修改,最后得到一个高科技产品,使得它的者越来越多,其中能制作的产品有:机器人;DIY 的无人机(无人驾驶飞行器);DIY 的平板电脑,笔记本电脑,移动;能供电的计算器;基于 ARM 的系统,德州仪器的 OMAP 编程,Linux,数字信号处理,3D加速度;国产器;极低功耗的家用服务器

20、;示意图可供重新设计,以适应用户自己的使用。以上只是一些方面,还有很多可供者自行去发现,去探索。1.6本文工作安排Android 系统本身是一个庞大的系统,移植并不需要精通 Android 的每一个部分,需要考虑的是 Android 系统的硬件抽象层(HAL)和 Linux 中的相关设备驱动程序。Android 系统的移植工作的目的是为了在特定的硬件上运行 Android 系统。移植的目的就是为了改动较小的内容,支撑较为庞大上层的系统。同时由于硬件抽象层具有标准的接口,在各个不同的的实现中可以互相参考,虽然具体实现的内容不同,但是思路类似,可以相互参考。Beagoard 是一种开放硬件的单板计

21、算机,能够以合理的速度运行 Linux,同时保持价格低廉。其中包含一个 Texas Instruments OMAP3530 system-on-a-chip(SoC)Beag处理器 (ARM Cortex A-8 core),最高运行频率为 600MHz。本文对oard 开发板进行了应用,构建以 Beagoard 开发板为Linux操作系统的开发。Andriod 系统内核如何通过软硬件编译将系统内核移植到Beagoard 开发板上包括系统文件的移植。另外在移植成功后,完成一个简单 Andriod 应用程序开发,最后对移植的效果和问题进试和分析。Android 系统在移植到 Beagoard

22、开发板的过程中,把握关键要点,减少工作量是一个重要的方面。从工作的角度,通常的方法为,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。安排如下:第一章:绪论。该章介绍 Android 系统的特点,及Beagoard 开发板特点功能,在此基础上,结合设计背景,给出本文设计内容、课题意义。第二章:移植开发。对 Android 操作系统作了系统介绍,并阐述了 Android系统的体系结构和设计方法。第三章:开发板简介。介绍 Beag用。oard 开发板上的 OMAP 3530 相关介绍

23、及应第四章:系统移植。Android 系统,搭建工作环境,源代码,对移植的步骤进行了研究分析。第五章:总结、展望。第二章移植开发概述2.1Android 的体系结构与设计实现2.1.1Android 体系结构简介Android 作为一个移动设备的,其层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据 Android 的框图,其层次结构自下而上分为以下几个层次:操作系统层(OS)Android 使用 Linux2.6 作为操作系统,Linux2.6 是一种标准的技术,Linux也是一个开放的操作系统。Android 对操作系统的使用包括和

24、驱动程序两部分,Android 的 Linux为标准的 Linux2.6 内核,Android的是需要一些与移动设备相关的驱动程序。主要的驱动如下所示:显示驱动(Display Driver):常用基于Linux 的帧缓冲(Frame Buffer)驱动;Flash 内存驱动(Flash MemoryDriver);照相机驱动(Camera Driver):常用基于 Linux 的v4l(for )驱动; 音频驱动( Audio Driver ): 常用基于 ALSA ( Advanced Linux Sound Architecture,高级 Linux 声音体系)驱动;WiFi 驱动(Ca

25、mera Driver):基于 IEEE802.11 标准的驱动程序;键盘驱动(KeyBoard Driver);蓝牙驱动(BluetoothDriver);Binder IPC 驱动: And 一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能;er Management(能源管理)。各种库(Libraries)和 Android 运行环境(RunTime)系统,相当于中间件层次。Android 的本层次分成两本层次对应一般个部分一个是各种库,另一个是 Android 运行环境。本层的内容大多是使用 C+实现的。在其中,各种库包括:C 库:C 语言的标准库,这也是系统中一个最为底层

26、的库,C 库是通过Linux 的系统调用来实现。多框架(MediaFrameword):这部分内容是 Android 多的部分,基于 Packet(即 PV)的OpenCORE,从功能上本库一共分为两大部分,一个部分是音频、的回放(PlayBack),另一部分是则是音的(Recorder)。其中 SGL 是 2D 图像引擎;SSL 即Secure Socket Layer 位于TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持;OpenGL ES 1.0 本部分提供了对 3D 的支持;界面管理工具(Surface Management)本部分提供了对管理显示子系统等功能;是一个通用

27、的数据库;WebKit 是网络浏览器的;Free Type 是位图和矢量字体的功能。Android 的各种库一般是以系统中间件的形式提供的,它们均有一个显著特点就是与移动设备的应用密切相关。Android 运行环境主要指的虚拟机技术Dalvik。Dalvik 虚拟机和一般JAVA 虚拟机(Java VM)不同,它执行的不是 JAVA 标准的字节码(byte code)而是 Dalvik 可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux 的一个Pros)3。二者最大的区别在于Java VM 是以基于栈的虚拟机(Stack-based),而 Dalvik 是基

28、于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。应用程序框架(Application Framework)Android 的应用程序框架为应用程序层的开发者提供 APIs,它实际上是一个应用程序的框架4。由于上层的应用程序是以 JAVA 构建的,因此本层次提供的首先包含了 UI 程序中所需要的各种控件,例如: Views (视图组件)包括 lists(列表), grids(栅格), text boxes(文本框)等。甚至一个的 Web 浏览器。一个 And 的应用程序可以利用应用程序框架中的以下几个部分:Activi

29、ty(活动);Broadcastent Receiver(广播意图接收者);Service(服务);ContentProvider(内容提供者)。应用程序(Application)Android 的应用程序主要是用户界面(Usererface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在 res 目录中)JAVA 程序及相关资源经过编译后,将生成一个 APK 包。Android 本身提供了主屏幕(Home),联系人(Contact),(Phone),浏览器(Browers)等众多的应用。同时应用程序的开发者还可以使用应用程序框架层的 API 实现自己的程序。这也是Andr

30、oid 开源的巨大潜力的体现。2.1.2Android 架构图图 2.1 展示了 Android 操作系统的主要组件:持。2.1.4Linux 内核Android 是基于 Linux 内核的操作系统,由早期开发5。Android 系统依赖Linux2.6 版,提供系统服务:安全、内存管理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他组之间的一个抽象层次。2.1.5库类在 Android 系统中包含一套 C/C+库,这些库类都能被 Android 系统中的不同组件使用6。开发者可以通过这些相应的程序框架使用其功能,部分库如下:surface Manager(管理范围):

31、主要的功能是让开发者可以去存取/显示系统及管理的功能,在显示与存取操作间的对应、互动以及实现无接缝的 ZD/3D 多应用程序之间的整合。例如:在 ZD、ZD 显示上的合动作。、叠3D libraries :基于 OpenGL ES 1.0 API 的实现; 该类库使用硬件 3D 加速器(如果硬件支持的话)或者内置的、高度优化的 3D能将硬件 3D 功能做最优化的处理显示。SGL:处理有关的底层 2D 图形引擎7。加速机制。Media Libraries :多流行音频和基于Packets Open CORE;支持很格式、静态图形文件,其中包括MPEG4, H.264, MP3,AAC,AMR,

32、JPG 和PNG 的和录制。FreeType :主要是用来显示点阵图和处理向量字形的(支持位图和矢量字体)。:是一套开放性的关联式资料库,能干、轻量级的关系型数据库引擎,面向所有应用。LibWebCore : 指流行的浏览器引擎,可以支持 Android 浏览器和嵌入应用的WEB 视图组件。libc :就是一个 BSD 标准 C 类库。但是,针对 Linux最佳化的调整。装置进行过2.2Android Runtime (Android 运行时组件)Android 的类库提供 Java 类库所提供的绝大部分功能。每个 Android应用都运行在自己已有的进程上,享有 Dalvik 虚拟机为它分配

33、的专有实例。为了支持多个虚拟机在同一个设备上高效运行,Dalvik 被改写过。Dalvi 虚拟机执行的是 Dalvik 格式的可执行文件(.dex)该格式经过优化,以降低内存耗用到最低。Java 编译器将 Java 源文 件转为 class 文件,class 文件又被内置的dx 工具转化为 dex 格式文件,这种文件在 Dalvik 虚拟机上并运行8。在一些底层功能比如线程和低内存管理方面,Dalvik 虚拟机是依赖Linux 内核。第三章Beagledoard 开发板3.1开发板简介Beagoard 是一种开放硬件的单板计算机,Beagoard 是一种便携式参考版,是 TI 与 Digi-K

34、ey(公司)共同推出的 ARM 开发板,具有功能强大、成本低廉、尺寸便携等诸多优点,目前被广泛应用于开源教育领域。Beagoard 是基于 TI 的 OMAP3 处理器,又后续推出的 Beagoard-xM 基于 TI 的 DM3730处理器,这两款处理器都是 ARM Cotex A8 的系列的主流。,处理能力应该属于目前 ARMBeag系统。oard 是一个廉价的,非常适合学习如何建立 Linux 和 AndroidBeagoard 性能也很不错,周边接口也非常丰富(详细见图)。Beagoard最大优势在于其丰富的开源支持。图 3.1 是Beagoard 开发板结构示意图,如下:图 3.1B

35、eagoard 开发板Beagoard 单板计算机的几个特点:完全独立;USB 2.0 接口,DVI-D 接口;SD/MMC 卡的扩充;ARM 的 Cortex-A8 处理器;三维运行 2 周期,无需风扇。(720P);它可Beagoard 的社区驱动:门户,并有独立的组,暑期编程mentorship Open 硬件,开发板的扩张和重建。3.2Beagoard OMAP3530 介绍kernel 的代码在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化,有助于移植 Android 系统。OMAP3530 的高性能应用处理器是基于增强的OMAP3 架构的。OMAP3 架

36、构的设计,是提供最佳的一流的、图像和图形处理足以支持以下内容:浏览;3D;会议;高分辨率的静态图像;以及该器件支持次的作业系统(OSS)的,如:Linux、WindowsCE。OMAP 设备包括最先进的电源管理的高性能移动产品所需的技术。还有一些子系统设备有:微处理器单元(MPU),基于 ARM Cortex- A8 的微处理器为基础的子系统IVA2。3.2.1OMAP3530 特性OMAP3530 的特性是易于使用的音频和基于 DaVinci技术的数字处理器的器。此外,还包括各种O / S 板的升级支持包和更新。所有编器提供免费评估,申请免费。OMAP3530 应用的处理器有:OMAP3 架

37、构、微处理器子系统、高达 720兆赫的 ARM Cortex- A8 内核、协处理器 NEONSIMD 的高性能图像,音频(IVA2.2)子系统,520 兆赫的 TMS320C64x+DSP 的,增器存取(EDMA)控制器(有 128 个独立频道),强型直接硬件,新交图形秒通用;可扩充的ERVR(OMAP3530 器件);结构基于提供 10 瓦 MP 0.1引擎:多线程引擎结合的像素和顶点器功能;行业标准API 的支持:OpenGLES1.1 和 2.0,OpenVG1.0。细粒度任务切换,负载平衡,和电源管理,可编程高品质图像抗锯齿,完全兼容 C64x 和 ARM9,商业和扩展温度级,先进的

38、甚长指令字(VLIW)TMS320C64x+DSP 的,高度独立的功能。3.2.2OMAP3530 的好处OMAP3530 开发板中包含 ARM 的 Cortex- A8 的600MHz,er VR SGX530OpenGL/ ES 的三维,TMS320C64x 型的 DSP,256MB 的 LPDDR,USB2 OTG 功能,JTAG接口,扩展区,支持 SD/ MMC 卡,1200 的 DMIPS。可供使用者随意进行移植调试。第四章 系统移植Android 系统Android 的 API Android 的 API 主要内容有:Android Manifest.xml 是系统的控制文件,它告

39、诉系统如何处理所创建的所有应用组件(尤其是活动(Activity),服务(Servies),意图(entReeeiver)和内容提供者(content Provider)。举例来说,控制文件就是把活动和要接收的意图(ents)连接在一起的“胶水”。活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工作还可能包括对用户 Ul 界面的显示。不过这不是必须的,有些活动从不显示 Ul 界面。视图可以将其自身绘制到屏幕上。Android 的用户界面由一系列的视图树。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术(比如开发或者是

40、使用了不常用的用户图形窗口界面)。意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用,程序想要显示一个网页,那么它可以通过创建一个ent 实例并将其传递给系统来表示意图浏览这个 URI。系统将定位到能处理这一eni 的代码(在当前情况下就是浏览器),并运行之。意图也可以用于广播系统范围内的有效事件(例如通知事件)。服务是运行在的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要.。其它的组件可以绑定到一个服务上来,通过过程调用(RPc)来调用这个方法。例如器的服务,当用户退出选择的界面时,仍然希望音乐依然可以继续,这时就可用服务来保证当用户界

41、面关闭时音乐还继续着。通知是将以小图标的形式呈现在状态栏里,用户通过与图标的交互式操来接收消息。最常见包括息、和语音邮件,但是应用程序也可以创建它们自己事件。内容提供者是用来提供对设备上数据进行。典型的例子就是使用内容提供者来联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可以定义自己的内容提供者来向其它应用提供数据服务。4.2移植实现 Android 系统移植的移植包括四个模块9 :U-boot、Linux kernel、 Android 系统框架、 Android 应用程序。引导加载程序。包括在固件(firmware)中的 boot 代码(可选),和 BootLoad

42、er 两大部分。采用U-boot。Linux 内核。特定于板子的定制内核以及内核的启动参数。文件系统。包括根文件系统和建立于Flash 内存设备之上文件系统。通常用ram disk 来作为root fs。用户应用程序。特定于用户的应用程序。是由 Android 系统提供。4.2.1U-boot 的体系结构U-boot 和目录结构类似于 Linux 内核的结构,各主要目录包含代码的功能为:board,common,CPU,disk,doc,drivers,include,lib_x,net,tools.board:和一些已有开发板有关的文件. 每一个开发板都以一个子目录出现在当前目录中。comm

43、on:实现 U-boot 命 令行下支持例如bootm 命令对应就是cmd_bootm.c。令,每一条命令都对应一个文件。CPU:与特定 CPU 架 构相关目录,每一款 Uboot录下对应一个子目录,比子目录arm926ejs 就是架构目录。下 支持的 CPU 在该目开发板上使用的cpu 的disk:对磁盘的支持。doc:文档目录。U-boot 有非常完善的文档,大家参考阅读。drivers:U-boot 支持的设备驱动程序都放在该目录,比如各种网卡、支持CFI 的Flash、串口和 USB 等。FS:支持的文件系统,U-boot 现在支持cramfs、fat、fdos、jffs2 和regi

44、sterfs。include:Uboot 使用的头文件,还有对各种硬件 支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目录下configs 目录有与开发板相关的配置头文件,如 leopard2a.h。该目录下的 asm 目录有与CPU 体系结构相关的头文件,asm 对应的是asmarm。lib_x: 与体系结构相关的库文件。如与 ARM 相关的库放在lib_arm 中。net:与网络协议栈相关的代码,BOOTP 协议、TFTP 协议、RARP 协议和NFS 文件系统的实现。tools:生成U-boot 的工具,如:mkimage, crc 等等。4.3环境搭建搭建移植环境主要有:第一

45、部,2 台电脑,SBC3530 一台,使用一个路由器来互相联网。第二部,电脑 A 跑 XP 系统,提供 TFTPD 服务,使用 Secure CRT 来登陆 SBC3530 的串口,使用Source Insight 来检索kernel 和android 的源代码,使用SFU提供 NFS 服务来在电脑AB 之间进行文件共享。第三部,电脑 B 跑 Frdora13,负责编译 Android,并为 SBC3530 提供 NFS 的ROOT 挂载服务。4.4移植步骤U-boot 源代码:U-boot 的源代码可以从使用的 Atmel 的上,由于到 Atmellinux4sam 官网已经移植成功的U-b

46、oot 源代码直接使:h/linux4sam/bin/view/Linux4SAM/U-Boot。用。添加开发板支持,创建代码目录:board/atmel/at91sam9m10g45ek 增加开发板的支持代码:board/atmel/at91sam9m10g45ek/nand.c添加 nandflash 的开发板读写支持。 board/atmel/at91sam9m10g45ek/led.c添加开发板的 LED 控制board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c添加开发板硬件资源初始化board/atmel/at91sam9m10g45ek/p

47、artition.c添加 flash 分区信息+ 0 x00000000, 0 x000041FF, FLAG_PROTECT_SET, 0, Bootstrap,+ 0 x00004200, 0 x000083FF, FLAG_PROTECT_CLEAR, 0, Environment,+ 0 x00008400, 0 x00041+ 0 x00042000, 0 x00251+ 0 x00252000, 0 x, FLAG_PROTECT_SET, 0, U-Boot, FLAG_PROTECT_CLEAR, 0, Kernel, FF, FLAG_PROTECT_CLEAR, 0, FS

48、,board/atmel/at91sam9m10g45ek/config.mkboard/atmel/at91sam9m10g45ek/Makefile 添加 Makefile 文件,将添加代码增加到代码树中编译添加 U-boot 配置文件创建配置文件:include/configs/at91sam9m10g45ek.h修改全局 Makefile 文件增加开发板选项Makefile+at91sam9m10g45ek_nandflash_config+at91sam9m10g45ek_dataflash_config+at91sam9m10g45ek_dataflash_cs0_config+a

49、t91sam9m10g45ek_config : unconfig+mkdir -p $(obj)includeif $(findstring _nandflash,$) ; thenecho #define CFG_USE_NANDFLASH 1 $(obj)include/config.h$(XECHO) . with environment variable in NAND FLASH echo #define CFG_USE_AT91SAM9M10G45EK 1$(obj)include/config.h+ else+echo #define CFG_USE_DATAFLASH 1 $

50、(obj)include/config.h$(XECHO) . with environment variable in SATAFLASH CS0 ; echo #define CFG_USE_AT91SAM9M10G45EK 1$(obj)include/config.h ; + fi;+ $(MKCONFIG) -a at91sam9m10g45ek arm arm926ejs at91sam9m10g45ekatmelat91sam94.4.1交叉编译U-boot准备好 AT91 u-boot 的源代码后, 交叉编译 U-boot分为两步 : 配置和编交叉编译工具来编译译。可以使用 a

51、rm-elf- 和 arm-Linux- ARM GCCU-boot。下面是编译 AT91sam9g45 开发板的步骤:make distcleanmake at91sam9g45ekes_nandflash_configmakLE=piler 当其不在你的当前设置路径中时才需要。通常refix- 应该是这个样子arm-linux- or arm-elf-编译结束后将会在当的u-boot 二进制可执行文件u-boot.bin 和相应的二进制ELF 文件pil前路径生成u-boot.u-boot.bin 就是格式的二进制文件,要到开发板上的二进制镜像文件 u-boot 是 ELF可以用来调试U-

52、boot。4.4.2Linux kernel 的移植通过和标准的Linux 2.6.25 Kernel 的对比,可以发现,其主要增加了以下的内容:基于 ARM 架构增加 Gold-Fishkernel/arch/arm/mach-goldfish kernel/include/asm-arm/arch-goldfish,相应增加的目录如下:Gold-Fish采用的是ARM926T CPU 作为BaseBand 处理器, 该CPU 主频至少为 200M HZ. 采用MSM7201A C528MHZ.RM 11)作为主CPU, 其主频为增加了yaffs2 FLASH 文件系统,相应增加的目录为:k

53、ernel/fs/yaffs2,实际上,Android 包经过编译后生成的system.img 和 ramdisk.img 文件就是 yaffs2 格式的包。增加了 Android 的相关 Driver,相应目录为:kernel/drivers/android主要分为:Android IPC 系统: Binder;Android 日志系统: Logger;Android 电源管理:er ; Android 闹钟管理: Alarm ; Android 内存控制台:Ram_console;Android 时钟控制的gpio: Timed_gpio。增加了switch 处理, 相应的目录为:kern

54、el/drivers/switch/增加了一种新的共享内存处 理方 式 , 相应增加的文 件为:kernel/mm/ashmem.c 其他为Linux-2.6.25 内核所做的补丁等等,例如BlueTooth,在此不做详细分析另外 GoldFish字符输出设备:kernel/drivers/char/goldfish_tty.c图象显示设备: (Frame Buffer) kernel/drivers/相关的驱动文件如下:/goldfishfb.c键盘输入设备:kernel/drivers/input/keyboard/goldfish_events.c RTC 设备:(Real Time C

55、lock) kernel/drivers/rtc/rtc-goldfish.c USB Device 设备:kernel/drivers/usb/gadget/android_adb.cSD 卡设备:kernel/drivers/mmc/host/goldfish.cFLASH 设备:kernel/drivers/mtd/devikernel/drivers/mtd/devi/goldfish_nand.c/goldfish_nand_reg.h;LED 设备:kernel/drivers/leds/ledtrig-sleep.c电源设备:kernel/drivers/er/goldfish_

56、battery.c音频设备:kernel/arch/arm/mach-goldfish/audio.c电源管理:kernel/arch/arm/mach-goldfish/pm.c 时钟管理:kernel/arch/arm/mach-goldfish/timer.c然后对Linux 内核进行移植有以下几个步骤:Linux 内核源代码 Linux 内核:在 Atmel 移植成功的 linux 内核基础上修改地址:h/linux4sam/bin/view/Linux4SAM/LinuxKernel电源管理修改目录 drivers/er/ 下的 Makefile 文件,增加下面一行:obj-$(CO

57、NFIG_BATTERY_DUMMY)+=dummy_battery.o修 改 目 录drivers/er/下的 Kconfig 文件,增加以下内容:config BATTERY_DUMMYtrise dummy battery driver helpSay Y here to enable support for dummy battery driver.在 drivers/er/ 目录增加 dummy_battery.c , 该文件模拟电源管理器 Android可以从这个驱动文件获得电源信息。下面描述了电源的详细信息:Battery sus: Charging (AC).Battery l

58、evel: 58Battery scale: 100 Battery health: Good Battery Voltage: 0 mvBattery temperature: 0.0Battery technology: Li-ion更 改 开 发 版 驱 动 以 支 持Android获 取 该 电 源 管理 数 据:arch/arm/mach-at91/board-sam9m10g45ek.c,定义电源管理作为 struct platform_device battery = .name = dummy-battery,.id = -1,;电源设备:硬件:sicsic void init

59、 ek_add_device_battery(void)platform_device_register(&battery);将初始化代码加入 ek_board_init ()函数初始化电源设备: ek_add_device_battery();LCD修改 framebuffer 驱动在目录 driver/发板 LCD 的正常显示。+#define ATMEL_LCDC_FIFO_SIZE 512下面修改 atmel_lcdfb.c使之符合开#define ATMEL_LCDC_CVAL_DEFAULT 0 xc8-#define ATMEL_LCDC_DMA_BURST_LEN 8 /* w

60、ords */-#define ATMEL_LCDC_FIFO_SIZE 512 /* words */+#define ATMEL_LCDC_DMA_BURST_LEN 8+s+s+sic unsignedframe_update_done;ic spinlock_t lock;ic wait_queue_head_t wait;+ dma_addr = fix-smem_start + var-xres * 2 * var-yoffset;-dma_addr = (fix-smem_start + var-yoffset * fix-line_length dma_addr &= 3UL;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论