




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、科技学院 2011 届本科Android 系统在 Beagoard 上的移植专业: 电子信息科学与技术指导教师:周 骅 学生学生学号: 072004110484中国贵阳2011 年 5 月目录摘要IIIAbstractIV第一章 绪论11.2课题背景及国内外情况11.2.1课题背景11.2.2国内外情况概括21.3智能操作系统简介21.3.1智能系统特点21.3.2智能系统发展趋势31.4Android 的优势31.5Beagoard 开发的特点及优势41.6本文的主要工作5第二章移植开发概述72.1Android 的体系结构与设计实现72.1.1Android 体系结构简介72.1.2And
2、roid 架构图92.1.3应用框架(Application Frameworks)102.1.4Linux 内核112.1.5库类112.2Android Runtime (Android 运行时组件)122.3应用12第三章Beagledoard 开发板133.1开发板简介133.2Beagoard OMAP3530 介绍143.2.1OMAP3530 特性143.2.2OMAP3530 的好处15第四章系统移植164.1 Android 系统.164.1.1 Android 的 API164.2移植174.2.1U-boot 的体系结构174.3环境搭建184.4移植步骤184.4.1交
3、叉编译U-boot204.4.2设置启动参数204.4.3获取 Android 源代码214.4.4配置并编译 Android234.4.5系统功能测试26第五章总结、展望30参考文献31致谢32Android 系统在 Beagoard 上的移植摘要自从开发软件Android 系统后,很快引起了全世界软件社群的积极参予,由于开源 Android的移动的推出,由,出现了在 OEM 社会利益,也为其他定制 Android 的,如作为上网本,机顶盒,汽车仪表板等。该机器人可用于制作优势多个设备将意味着一个设备开发的应用程序可以很容易地作出可供移植的需要以最小的另一个。而且现在很多公司正在或计划推出基
4、于 Android 的智能和平板电脑。Android提供给普通开发者非常灵活的移植空间,本文先介绍智能情形,然后基于 Beagoard操作系统的体系结构、特点以及国内外的一种开放硬 件的单 板计算 机。 kernel的代码 在高版本 包含了 SBC3530(omap3_stalker)的板型配置和初始化, OMAP3530 应用处理器:OMAP3架构、微处理器子系统、高达 720 兆赫的 ARM Cortex- A8 内核、协处理器的NEONSIMD 的高性能图像,音频,有助于移植 Android 。同时提供一些简单的 Android 功能拓展。:智能操作系统;Android;Beagoard
5、 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 platform for mobile phones launched by,there was
6、significanteresthe 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 developedtransplanion to anoth Android-based sadevice can easily be m
7、ade to minimize the need for latform. And now many companies are or plan to launchtablet PCs.Android platform offers developers a very flexible to the general freedom ofmigration space, this prdescribes the system of smart phone operating systemstructure, characteristics and research situation at ho
8、me 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, themicroprosor subsystem, up to 720 MHz ARM Cortex - A8 core, th
9、e 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月,开发的基于Linux了Android开放源代码,释出Android程序代码。Android 是的开源操作系统。它包括操作系统、用户界面和应用程序 移动工作所需
11、全部软件,而且不存在任何以往阻碍移动产业创新的专有权。与开放合作开发了Android,它由由33家的联合会。制造商、软件商和电信业组成的推广Andro记用户从来没有使用过任何基于 Android通过观察,全球为数众多的移动系统的。的目标是让(移动通讯)不依赖于设备甚至。出于这个目的,Android 将补充,而不会替代长期以来奉行的移动发展;通过与全球各地的制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并为之推广。运行商T-Mobile USA在纽约正式发布第一款AndroidT-Mobile G1,该是宏达电子代工制造,是世界第一部使用了Android操作系统机,它支持WCD
12、MA/HSPA网络,理论使用Android系统的智能率7.2Mbps,并支持Wi-Fi,到目前为止,已经有多款,超过5万个应用程序。1.2.2国内外情况概括Android是由Android公司(于2005年8月将Android公司收购)开发,和其他几十个公司建立了开放。在短短几年时间里,Android的巨头,连Steve Paul系统从一个菜鸟变成今日Jobs(史蒂夫)的苹果也感到了威胁,这让不得不为之折服。目前Android系统已经发展成了由众多终端产品支持的超大,而软件应用数量也正以难以置信的速度更新着,看来从挑起了“开源”与“封闭”争论之日起的同时Android也开始了走向辉煌。Andr
13、oid系统内核开发环境一般都是在 Windows 或 Linux 下完成的。由于Android 系统的开放性和性,在未来应用必定十分广泛。1.3智能操作系统简介1.3.1智能系统特点其一、它具有一般的所有功能,能收发,正常通话等应用功能。其二、它具有PDA功能,其中包括PIM(个人信息管理),任务安排,浏览网页,多应用。其三、它具备无线接入互联网能力,即3G网络或者CDMA网络下的CDMA等。其四、它拥有人性化特点,可根据个人喜好或需要进行扩展的功能。其五、支持第软件,功能强大,拓展性强。其六、具备开放性的操作系统,在这操作系统上,可以安装的应用程序,而使原有的程序得到更好的,得到无线的扩展。
14、1.3.2智能系统发展趋势1.开源开源是智能发展的一个新趋势,目前,智能厂商和运营商都宣布了自己的刚刚推出了Android 开源移动开源或产品。前,计划。2.电池电池持续时间是衡量智能的一个重要标准,蓝牙、Wi-Fi、免提等均消耗少量的电量,所以,为使它持续时间延长,应尽量关闭不常用的功能。3.Wi-Fi找到一块新的Wi-Fi 4.GPS,可有效降低能耗,延长电池。GPS是目前应用比较普遍的全球,宏达电子、RIM 和其他智能厂商均推出了支持GPS 功能机 产品。他不仅可以帮助用户从A 点走到B 点,更重要的是,GPS 服务商也推出各种各样的服务。5.安全智能着各种安全威胁,如功能锁定、设备锁定
15、、验证、等等。6.多为系统多应用,智能需要平衡和个人应用所需功能。1.4Android 的优势一、开放性在优势方面,Android首先就是其开放性,开放的允许任何移动终端厂商加入到Android中来。显著的开放性可以使其拥有的开发者,随着用户和应用也将很快成熟。开发性对于Android 的发展而言,有的日益丰富,一个崭新的利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪机。二、挣脱运营商的在过去很长的一段时间,特别是在欧美地区,应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到
16、运营商的控制。自从上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、 HSDPA 这些2G至3G 移动网络的逐IM 软一步过渡和,随意接入网络已不是运营商口中的笑谈,当你可以通过件方便地进行即时聊天时,再回想前天价的彩信和图铃业务,就如在般?互联网巨头推动的Android 终端天生就有网络特色,将让用户离互联网更近。三、丰富的硬件选择这一点还是与Android的开放性相关,由于Android 的开放性,众多的厂商会推奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,好比你从诺基亚Symbian 风格一下改用苹果,同时还可将Symbian
17、中优秀的软件带到不是非常方便呢?上使用、联系人等资料更是可以方便地转移,是四、不受任何限制的开发商Android提供给第开发商一个十分宽泛、的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,、暴力、方面的程序和如何控制正是留给Android 难题之一。五、无缝结合的应用已经走过10 年度历史,从搜索巨人到全面的互联网渗透,如今叱诧互联网的服务如地图、 邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android将无缝结合这些优秀的服务。Beagoard 开发的特点及优势1.5Beagoard单板计算机的特点:1、完全独立2、USB 2.0接口,DV
18、I-D接口3、SD/MMC卡+扩充4、ARM的Cortex-A8处理器5、三维(720P)6、128MB的,512MB内存7、运行在2周,无需风扇对于和移动开发以OMAP3530为参考,其中包含ARM的Cortex- A8的600MHz,erVR SGX530的OpenGL/ ES三维,TMS320C64x型 + DSP,256MB的LPDDR,USB2 OTG功能,JTAG接口,扩展区,支持SD/ MMC卡+,1200的DMIPS。对于者而言物美价廉自己动手做高科技,有:机器人DIY的无人机(无人驾驶飞行器)DIY的平板电脑,笔记本电脑,移动能供电的计算介绍基于ARM的系统度,德州仪器的OM
19、AP编程,Linux,数字信号处理,3D国产器极低功耗的家用服务器登记的项目超过160个示意图可供重新设计,以适应1.6本文的主要工作Android系统本身是一个庞大的系统,移植并不需要精通Android的每一个部分,需要考虑的是Android系统的硬件抽象层(HAL)和Linux中的相关设备驱动程序。Android系统的移植工作的目的是为了在特定的硬件上运行Android系统。移植的目的就是为了改动较小的内容,支撑较为庞大上层的系统。同时由于硬件抽象层具有标准的接口,在各个不同的的实现中可以互相参考,虽然具体实现的内容不同,但是思路类似,可以相互参考。Beagoard 是一种开放硬件的单板计
20、算机,能够以合理的速度运行 Linux,同时保持价格低廉。其中包含一个 Texas Instruments OMAP3530 system-on-a-chip (SoC) 处理器(ARM Cortex A-8 core),最高运行频率为 600MHz。本文对 Beagoard 开发板进行了应用,构建以Beagoard 开发板为,Linux 操作系统的开发。Andriod 系统内核如何通过软硬件编译将系统内核移植到 Beagoard 开发板上包括系统文件的移植。另外在移植成功后,完成一个简单 Andriod 应用程序开发,最后对移植的效果和问试和分析。题进第一章:绪论。该章介绍Android系统
21、的特点,及Beag础上,结合设计背景,给出本文设计内容、课题意义。oard开发板特点功能,在此基第二章:移植开发。对Android操作系统作了系统介绍,并阐述了Android系统的体系结构和设计方法。第三章:开发板简介。介绍Beagoard开发板上的OMAP 3530相关介绍及应用。第四章:系统移植。Android系统,搭建工作环境,源代码,对移植的步骤进行了分析。第五章:总结、展望。Android 系统在移植到 Beagoard 开发板的过程中,把握关键要点,减少工作量是一个重要的方面。从工作的角度,通常的方法为,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件
22、抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。安排如下:第二章移植开发概述2.1Android 的体系结构与设计实现2.1.1Android 体系结构简介Android作为一个移动设备的,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:第一、操作系统层(OS)Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使用包括和驱动程序两部分,
23、Android的Linux为标准的Linux2.6内核,Android要的驱动如下所示:的是需要一些与移动设备相关的驱动程序。主显示驱动(Display Driver):常用基于Linux的帧缓冲(Frame Buffer)驱动。Flash内存驱动(Flash Memory Driver)照相机驱动(Camera Driver):常用基于Linux的v4l(for )驱动。音频驱动(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高级Linux声音体系)驱动。WiFi驱动(Camera Driver):基于IEEE 802.11
24、标准的驱动程序键盘驱动(KeyBoard Driver)蓝牙驱动(Bluetooth Driver)Binder IPC驱动: An通讯的功能。d一个特殊的驱动程序,具有单独的设备节点,提供进程间er Management(能源管理)第二、各种库(Libraries)和Android 运行环境(RunTime)本层次对应一般系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容大多是使用C+实现的。在其中,各种库包括:C库:C语言的标准库,这也是系统中一个最为底层的库,C库是通过Linux的系统调用来实现。多框架(MediaFram
25、eword):这部分内容是Android多的核心部分,基于Packet个部分是音频、(即PV)的OpenCORE,从功能上本库一共分为两大部分,一的回放(PlayBack),另一部分是则是音的(Recorder)。SGL:2D图像引擎。SSL:即Secure Socket Layer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。OpenGL ES 1.0 :本部分提供了对3D的支持。界面管理工具(Surface Management):本部分提供了对管理显示子系统等功能。:一个通用的数据库WebKit:网络浏览器的 FreeType:位图和矢量字体的功能。Android 的
26、各种库一般是以系统中间件的形式提供的,它们均有的一个显著特点就是与移动设备的的应用密切相关。Android 运行环境主要指的虚拟机技术Dalvik。Dalvik虚拟机和一般JAVA虚拟机(Java VM)不同,它执行的不是JAVA标准的字节码(bytecode )而是Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个Pros)。二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的
27、特点。第三、应用程序框架(Application Framework)Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件:例如: Views (视图组件)包括 lists(列表), grids(栅格), text boxes(文本框)等。甚至一的Web浏览器。一个And的应用程序可以利用应用程序框架中的以下几个部分:Activity (活动)个Broadcastent Receiver (广播意图接收者)Service (服务)Content Provider (
28、内容提供者)第四、应用程序(Application)Android的应用程序主要是用户界面(Usererface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact)Phone),浏览器(Browers)等众多的应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。2.1.2Android 架构图下图展示了Android操作系统的主要组件:3. Resource Manager(资源管
29、理器),提供对非编码资源例如本地化字符串、图形和布局 文件的通道。Notification Manager(通告管理 器),使应用在状态栏显示自定义的警报通知。Activity Manager(行动管理器)负责管理应用的生命周期,提供通用导航回退支持。2.1.4Linux 内核Android是基于Linux内核的操作系统,由早期开发。Android系统依赖Linux2.6版,提供系统服务:安全、内存管理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。2.1.5库类在Android系统中包含一套C/C+库,这些库类都能被Android系统中的不同
30、组件使用。开发者可以通过这些相应的程序框架使用其功能,部分库如下:(1)surface Manager(管理范围):主要的功能是让开发者可以去存取/显示系统及管理的功能,在显示与存取操作间的对应、互动以及实现无接缝的 ZD/3D 多应用程序之间的整合。例如:在ZD、ZD 显示上的、叠合动作。(2) 3D libraries :基于OpenGL ES 1.0 API 的实现; 该类库使用硬件3D(如果硬件支持的话)或者内置的、高度优化的3D 软件化的处理显示。机制。能将硬件3D功能做最优(3)SGL:处理有关的底层2D图形引擎。(4)Media Libraries :基于Packets Open
31、 CORE;支持很多流格式、静态图形文件,其中包括MPEG4, H.264, MP3, AAC,AMR, JPG和和录制。行音频和PNG 的(5)FreeType :主要是用来显示点阵图和处理向量字形的(支持位图和矢量字体)。(6)面向所有应用。:是一套开放性的关联式资料库,能干、轻量级的关系型数据库引擎,(7)LibWebCore : 指流行的浏览器引擎,可以支持Android 浏览器和嵌入应用的WEB 视图组件。(8)libc :就是一个 BSD 标准 C 类库。但是,针对 Linux化的调整。装置进行过最佳2.2Android Runtime (Android 运行时组件)Android
32、 的类库提供Java 类库所提供的绝大部分功能。每个Android应用都运行在自己已有的进程上,享有Dalvik 虚拟机为它分配的专有实例。为了支持多个虚拟机在同一个设备上高效运行,Dalvik 被改写过。 Dalvik 虚拟机执行的是Dalvik 格式的可执行文件(.dex)该格式经过优化,以降低内存耗用到最低。Java 编译器将Java 源文 件转为class 文件,class 文件又被内置的dx 工具转化为dex 格式文件,这种文件在 Dalvik 虚拟机上 并运行。 在一些底层功能比如线程和低内存管理方面,Dalvik虚拟机是依赖Linux 内核。2.3应用Android 将预装一组应
33、用程序,包括客户端、服务、日历日程、地图服务、浏览器、联系人和其他应用程序。所有应用程序都是Java 编程语言编写的。第三章 Beagledoard 开发板3.1开发板简介Beagoard 是一种开放硬件的单板计算机,Beagoard是一种便携式参考版,是TI与Digi-Key(公司)共同推出的ARM开发板,具有功能强大、成本低廉、尺寸便携等诸多优点,目前被广泛应用于开源教育领域。Beagoard是基于TI的OMAP3处理器,又后续推出的Beagoard-xM基于TI的DM3730处理器,这两款处理器都是ARM Cotex A8的,处理能力应该属于目前ARM系列的主流。BeagBeagoard
34、是一个廉价的,非常适合学习如何建立Linux和Android系统。oard性能也很不错,周边接口也非常丰富(详细见图)。Beagoard最大优势在于其丰富的开源支持。图3.1Beagoard开发板一、Beagoard单板计算机的特点:1、完全独立2、USB 2.0接口,DVI-D接口3、SD/MMC卡+扩充4、ARM的Cortex-A8处理器5、三维(720P)6、128MB的,512MB内存7、运行在2周,无需风扇 二、Beagoard社区驱动:1、门户2、3、组4、体育馆5、暑期编程mentorship Open硬件6、机会扩张和重建7、Ger bers,原理图,物料免费提供3.2Beag
35、oard OMAP3530 介绍kernel的代码在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化,有助于移植Android 。OMAP3530的高性能应用处理器是基于增强的OMAP3架构。的OMAP3架构的设计,提供最佳的一流的,图像和图形处理足以支持以下内容:(1)浏览(2)3D(3)会议(4)高分辨率的静态图像(5)该器件支持次的作业系统(OSS)的,如:Linux、Windows CE。OMAP设备包括先进设备,最先进的电源管理的高性能移动产品所需的技术。还有一些子系统设备有:微处理器单元(MPU),基于ARM Cortex- A8的微处理器为基础的子系统I
36、VA2。3.2.1OMAP3530 特性易于使用的音频和基于 Da Vinci技术的数字包括各种O / S 的板级支持包和软件更新。所有编处理器的器。此外,还器提供免费评估。申请免费软件!OMAP3530 应用处理器:OMAP3 架构、微处理器子系统、高达 720 兆赫的ARMCortex- A8 内核、协处理器的 NEONSIMD 的高性能图像,音频(IVA2.2)子系统,520 兆赫的TMS320C64x+DSP,增强型直接器存取(EDMA)ERVR引擎:多线程引控制器(128 个独立频道),硬件,新交图形的(OMAP3530 器件);结构基于提供 10 瓦 MP oly/秒通用,可扩充擎
37、结合的像素和顶点器功能,行业标准 API 支持:OpenGLES1.1 和 2.0,OpenVG1.0。细粒度任务切换,负载平衡,和电源管理,可编程的高品质图像抗锯齿,完全软件兼容的C64x 和 ARM9,商业和扩展温度级,先进的甚长指令字(VLIW 的)的TMS320C64x+DSP,八高度独立的功能。3.2.2OMAP3530 的好处其中包含ARM的Cortex- A8的600MHz,er VR SGX530的OpenGL/ ES三维,TMS320C64x型 + DSP,256MB的LPDDR,USB2 OTG功能,JTAG接口,扩展区,支持SD/ MMC卡+,1200的DMIPS。可供使
38、用者随意进行移植调试第四章 系统移植4.1 Android 系统4.1.1 Android 的 API(1)Android Manifest.xmlAndroid Manifest.xml 是系统的控制文件,它告诉系统如何处理所创建的所有应用组件( 尤其是活动(Activity) ,服务(Servies),意图(ent Reeeiver)和内容提供者(content Provider)。举例来说,控制文件就是把活动和要接收的意图(的“胶水”。(2)活动ents)连接在一起活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工作还可能包括对用户 Ul 界面的显示。不过这不是必须
39、的,有些活动从不显示 Ul 界面。(3)视图视图可以将其自身绘制到屏幕上。Android 的用户界面由一系列的视图树。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术(比如开发(4)意图,或者是使用了不常用的用户图形窗口界面)。意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要显示一个网页,那么它可以通过创建一个ent 实例并将其传递给系统来表示意图浏览这个 URI。系统将定位到能处理这一eni 的代码(在当前情况下就是浏览器),并运行之。意图也可以用于广播系统范围内的有效事件(例如通知事件)。(5)服务服务是运行在
40、的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要.。其它的组件可以绑定到一个服务上来,通过远程过程调用(RPc)来调用这个方法。例如器的服务,当用户退出选择的界面时,仍然希望音乐依然可以继续,这时就可用服务来保证当用户界面关闭时音乐还继续着。(6)通知通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互式操来接收消息。最常见包括息、和语音邮件,但是应用程序也可以创建它们自己的通知事件。(7)内容提供者内容提供者是用来提供对设备上数据进行。典型的例子就是使用内容提供者来联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可以定义自己
41、的内容提供者来向其它应用提供数据服务。4.2移植实现 Android 系统移植的移植包括四个模块:uboot、linux kernel、Android 系统框架、 Android 应用程序。引导加载程序。包括部分。采用U-boot。Linux 内核。特定于在固件(firmware)中的boot代码(可选),和BootLoader 两大板子的定制内核以及内核的启动参数。文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ram disk来作为root fs。用户应用程序。特定于用户的应用程序。是由 Android 系统提供。4.2.1U-boot 的体系结构U-boot 和目录
42、结构类似于 linux 内核的结构,各主要目录包含代码的功能为:1. board:和一些已有开发板有关的文件. 每一个开发板都以一个子目录出现在当前目录中。common:实现uboot 命 令行下支持令,每一条命令都对应一个文件。例如bootm命令对应就是cmd bootm.c。cpu:与特定CPU 架 构相关目录,每一款Uboot 下 支持的CPU 在该目录下对应一个子目录,比子目录arm926ejs 就是开发板上使用的cpu的架构目录。disk:对磁盘的支持。doc:文档目录。Uboot 有非常完善的文档,大家参考阅读。drivers:Uboot 支持的设备驱动程序都放在该目录,比如各种网
43、卡、支持CFI 的Flash、串口和USB 等。fs: 支持的文件系统,Uboot 现在支持cramfs、fat、fdos、jffs2 和registerfs。8. include:Uboot 使用的头文件,还有对各种硬件支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目录下configs 目录有与开发板相关的配置头文件,如leopard2a.h。该目录下的asm 目录有与CPU 体系结构相关的头文件,asm 对应的是asmarm。9. lib_x: 与体系结构相关的库文件。如与ARM 相关的库放在lib_arm中。10. net:与网络协议栈相关的代码,BOOTP 协议、TFTP 协
44、议、RARP 协议和NFS 文件系统的实现。11. tools:生成Uboot 的工具,如:mkimage, crc 等等。4.3环境搭建(1)2台电脑,SBC3530一台,使用一个路由器来互相联网。(2)电脑A跑XP系统,提供TFTPD服务,使用Secure CRT来登陆SBC3530的串口,使用 Source Insight来检索kernel和android的源代码,使用SFU提供NFS服务来在电脑AB之间进行文件共享。(3)电脑B跑Frdora13,负责编译Android,并为SBC3530提供NFS的ROOT挂载服务。移植步骤4.41.u-boot 源代码:U-boot 的源代码可以从
45、上,使用的 Atmel 的源代码直接使用。到 Atmellinux4sam由于,官网已经移植成功的U-booth:/linux4sam/bin/view/Linux4SAM/U-Boot2. 添加开发板支持创建代码目录: board/atmel/at91sam9m10g45ek增加开发板的支持代码:01、 board/atmel/at91sam9m10g45ek/nand.c添加 nandflash 的开发板读写支持。02、 board/atmel/at91sam9m10g45ek/led.c添加开发板的 LED 控制03、 board/atmel/at91sam9m10g45ek/at91s
46、am9m10g45ek.c添加开发板硬件资源初始化04、 board/atmel/at91sam9m10g45ek/partition.c添加 flash 分区信息+ 0 x00000000, 0 x000041FF, FLAG_PROTECT_SET, 0, Bootstrap, 18+ 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
47、, FLAG_PROTECT_CLEAR, 0, Kernel, FF, FLAG_PROTECT_CLEAR, 0, FS,05、 board/atmel/at91sam9m10g45ek/config.mk 06、 board/atmel/at91sam9m10g45ek/Makefile添加 Makefile 文件,将添加的代码增加到代码树中编译添加 u-boot 配置文件创建配置文件:include/configs/at91sam9m10g45ek.h修改全局 Makefile 文件增加开发板选项Makefile:+at91sam9m10g45ek_nandflash_config +
48、at91sam9m10g45ek_dataflash_config +at91sam9m10g45ek_dataflash_cs0_config +at91sam9m10g45ek_config : unconfig+ mkdir -p $(obj)include+ if $(findstring _nandflash,$) ; then + echo #define CFG_USE_NANDFLASH 1 $(obj)include/config.h ; + $(XECHO) . with environment variable in NAND FLASH ; + echo #define
49、 CFG_USE_AT91SAM9M10G45EK 1$(obj)include/config.h ; + else + echo #define CFG_USE_DATAFLASH 1 $(obj)include/config.h ; 4.4.1交叉编译 U-boot准备好 AT91 u-boot 的源代码后, 交叉编译 u-boot 分为两步 : 配置和编译。可以使用 arm-elf- 和 arm-linux- ARM GCC 交叉编译工具来编译u-boot 。下面是编译 AT91sam9g45 开发板的步骤:make distcleanmake at91sam9g45ekes_nandf
50、lash_configmakLE=的当前设置路径中时才需要。pilrefix- 应该是这个样子 arm-linux- or arm-elf-通常编译结束后将会在当前路径生成最新的u-boot 二进制可执行文件 u-boot.bin和相应的二进制 ELF 文件 u-boot.u-boot.bin 就是u-boot 是 ELF 格式的二进制文件,要到开发板上的二进制镜像文件可以用来调试 u-boot4.4.2设置启动参数U - Boot 的环境变量驱动过程- prenvlists 所有包膜增值经销商- bootargslists 所有内核参数- bootcmdis 默认的启动命令-可以自定义不同的
51、启动设置- saveenvsaves 变量闪存下次开机设置代码如下:setenv bootargs console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootwaitsetenv bootcmd mmcinit; foad mmc 0 80200000 uImage; bootm 80200000复杂的启动可以调用储存并开机- boot.scrinvoked默认情况下,看到包膜varloadbootscript4.4.3获取 Android 源代码1. 需要安装的软件工具须保证 linux 已经安装了以下工具: 必须的软件包:o Git 1.5.4 o
52、r newer and the GNU Privacy Guard.o JDK 5.0.18o flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl,genext2fs使用以下命令安装这些软件包#sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip cur
53、l libncurses5-dev zlib1g-dev genext2fs可以选择安装 Valgrind, 一个帮助查找内存泄露的工具,#sudo apt-get install valgrind需要最新版本的 libreadline:#sudo apt-get install lib32readline5-dev2. 添加环境变量 在的主目录里有一个 /bin 目录将其添加到的path 变量里面:# cd # mkdir bin# echo $PATH将以下变量加入到bashrc。export LANG=cexport JAVA_HOME=/usr/local/lib/jdk1.5.0_1
54、8export PATH=$JAVA_HOME/bin:/home/tom/bin:$PATH: export ANDROID_JAVA_HOME=$JAVA_HOME重启终端使 /.bashrc 生效。3. 安装 RepoRepo 一个使Android 源码管理更为方便的工具,安装和配置并赋予可执行权限:Repo:# cd # curlRepo/bin/repo#od a+x /bin/repo4. 初始化 Repo 新建一个目录放置# mkdir mydroid # cd mydroid的工作代码: 运行 repo init最新版本的 Repo 和更新,这里需要一个地址:# repo in
55、it -u git:/android.git.kernel.Android-2.0.1_r1成功的初始化后将会出现以下信息:/platform/manifest.git b#repo initialized in /mydroid5. 获取源码运行一下命令:# reync这一步需要较长的时间,如果中途停止可以结束当前命令,从新运行一次。6. 获取 ALSA 源码文件用以下命令获得 ALSA 的源代码:cd mydroid/hardwaregit clone git:/android.git.kernel. cd mydroid/externalgit clone git:/android.gi
56、t.kernel.git clone git:/android.git.kernel./platform/hardware/alsa_sound.git/platform/external/alsa-lib.git/platform/external/alsa-utils.git在 U-boot 和 linux kernel 正常移植的情况下,可以直接编译Android进行运行:以下修改是确保正确运行在新的而不受源代码的干扰:+ build/board/generic/BoardConfig.mk (working copy) -7,5 +7,7 _NO_BOOTLOADER := true_
57、NO_KERNEL := true_CPU_ABI := armeabi-E_HTC_AUDIO_DRIVER := true-BOARD_USES_GENERIC_AUDIO := true+#E_HTC_AUDIO_DRIVER := true+#BOARD_USES_GENERIC_AUDIO := true+BOARD_USES_ALSA_AUDIO := true+BUILD_WITH_ALSA_UTILS := true4.4.4配置并编译 Android配置编译器环境:make cleansource build/envsetup.sh bo选择 Device-release-g
58、eneric-eng 配置完成后,终端显示:PLATFORM_VERPLATFORM_VER_CODENAME=Eclair=Eclair_PRODUCT=generic_BUILD_VARIANT=eng_SIMULATOR=false_BUILD_TYPE=release_ARCH=arm HOST_ARCH=x86HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=ECLAIR 编译需要注意的是 Android 的编译需要 make 的版本为 3.8 或更高。执行:make v查看系统的 make 版本,如果低于 3.8 那么必须先升级 make
59、 命令的版本。执行 make 命令,编译 Android 源代码:makeAndroid 编译完成后,将在根目录中生成一个out文件夹,所有生成的Android代码结构内容均放置在这个文件夹中。out文件夹如下所示:1. out/|- CaseCheck.txt|- casecheck.txt|- host|- common| - linux-x86|-|- common| - product主要的两个目录为host 和认为ARMv5)运行的内容。 host目录的结构如下所示:1. out/host/| - common|- obj (JAVA 库),前者表示在主机(x86)生成的工具,后者表
60、示目标机(默| - linux-x86| - bin (二进制程序)|- framework (JAVA 库,*.jar 文件)|- lib (共享库*.so)| - obj (中间生成的目标文件)host 目录是一些在主机上用的工具,有一些是二进制程序,有一些是JAVA的程序。目录的Android 代码结构如下所示:1. out/|- common/|- R (资源文件)|- docs|- obj (目标文件)|- product| - generic其中common 目录表示通用的内容,product 中则是针对产品的内容。在common 目录的obj 中,包含两个主要的目录:APPS 中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025餐厅转让标准版合同
- 备课批改交流课件
- 2025浙江省舟山市室内装修施工合同(合同示范文本)
- 2025中外合作开发合同(合同示范文本)
- 2025铝合金门窗制作安装合同
- 2025医疗机构卫生耗材采购协议合同
- 金融产品营销策略作业指导书
- 环保行业污染治理与监测系统建设方案
- 项目实施过程中的风险应对策略报告
- 中国当代经典歌曲歌词赏析知到课后答案智慧树章节测试答案2025年春湖州师范学院
- 信息系统监理师(中级)考试题库(含答案)
- 《高性能混凝土应用技术标准》(征求意见稿)
- 研究生考试考研化学(农315)试题及解答参考(2024年)
- 《鲁迅研究性学习》课件
- 连锁经营管理专业学生专业技能考核标准
- 电影《白日梦想家》课件
- 软件架构师论文(必读10篇)
- 乡镇垃圾处理项目可行性研究报告
- 电力项目劳务施工安全方案
- 跨学科主题学习的设计
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
评论
0/150
提交评论