版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、科技學(xué)院 2011 屆本科Android 系統(tǒng)在 Beagoard 上的移植專業(yè): 電子信息科學(xué)與技術(shù)指導(dǎo)教師:周 驊:學(xué)生學(xué)生學(xué)號:072004110484中國貴陽2011 年 5 月目 錄目錄I摘要IIIAbstractIV第一章緒論1前言11.1課題背景及國內(nèi)外研究情況課題背景11.2.2國內(nèi)外研究情況概括2智能操作系統(tǒng)簡介智能系統(tǒng)特點21.3.2智能系統(tǒng)發(fā)展趨勢2Android 的優(yōu)勢31.4Beagoard 開發(fā)的特點及優(yōu)勢41.5本文工作安排41.6第二章移植開發(fā)概述6Android 的體系結(jié)構(gòu)與設(shè)計實現(xiàn)Android 體系結(jié)構(gòu)
2、簡介62.1.2Android 架構(gòu)圖72.1.3應(yīng)用框架(Application Frameworks)82.1.4Linux 內(nèi)核92.1.5庫類9Android Runtime (Android 運行時組件)102.2第三章Beagledoard 開發(fā)板11開發(fā)板簡介113.1Beagoard OMAP3530 介紹OMAP3530 特性123.2.2OMAP3530 的好處12第四章 系統(tǒng)移植13Android 系統(tǒng).1Android 的 API13移植U-boot 的體系結(jié)構(gòu)14環(huán)境搭建154.3移植步驟交
3、叉編譯 U-boot174.4.2Linux kernel 的移植174.4.3獲取 Android 源代碼234.4.4配置并編譯 Android254.4.5文件系統(tǒng)的建立284.4.6系統(tǒng)功能測試29第五章總結(jié)、展望31參考文獻(xiàn)32致謝33Android 系統(tǒng)在 Beagoard 上的移植摘要自從開發(fā)Android 系統(tǒng)后,很快引起了全世界社群的積極參予,由于開源 Android的移動的推出,由,出現(xiàn)了在 OEM 社會利益,也為其他定制 Android 的,如作為上網(wǎng)本,機頂盒,汽車儀表板等。該機器人可用于制作優(yōu)勢多個設(shè)備將意味著一個設(shè)備開發(fā)的應(yīng)用程序可以很容易地作出可供移植的需要以最小
4、的另一個平臺。而且現(xiàn)在很多公司正在或計劃推出基于 Android 的智能和平板電腦。Android提供給普通開發(fā)者非常靈活的移植空間,本文先介紹智能操作系統(tǒng)的體系結(jié)構(gòu)、特點以及國內(nèi)外的研究情形,然后基于 Beag oard一 種 開 放 硬 件 的 單 板 計 算 機 。 kernel 的 代 碼 在 高 版 本 包 含 了 SBC3530(omap3_stalker) 的板型配置和初始化, OMAP3530 應(yīng)用處理器: OMAP3 架構(gòu)、微處理器子系統(tǒng)、高達(dá) 720 兆赫的 ARM Cortex- A8 內(nèi)核、協(xié)處理器的 NEONSIMD 的高性能圖像,時提供一些簡單的 Android 功
5、能拓展。,音頻,有助于移植 Android 。同:智能操作系統(tǒng);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前言現(xiàn)代迅猛發(fā)展的同時系統(tǒng)也逐漸被大眾所熟知,相應(yīng)的
10、、操作系統(tǒng)也被廣泛應(yīng)用,而且其更新速度也非常的迅速?,F(xiàn)代微電子技術(shù)的發(fā)展,催生了高性能、低功耗、具有強大圖形處理能力的微處理器,更使得嵌入式移動設(shè)備可以搭載具有完全功能的操作系統(tǒng)。在智能領(lǐng)域,各大廠商都推出了自己獨樹一幟的智能操作系統(tǒng),其中比較突出的蘋果公司推出的操作系統(tǒng)和推出的 Android 操作系統(tǒng)。Android 作為一個開源的智能,以其開放性和可移植性等優(yōu)勢日益受到大眾的歡迎和廠商的青睞。本文首先是對智能操作系統(tǒng)和 Android 做了一個相關(guān)的介紹,然后寫了一些研究方向和工作側(cè)重點。1.2課題背景及國內(nèi)外研究情況1.2.1課題背景2008 年 9 月,Android 是了 Andr
11、oid 開放源代碼,釋出 Android 程序代碼。開發(fā)的基于 Linux的開源操作系統(tǒng)1。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序 移動往阻礙移動產(chǎn)業(yè)創(chuàng)新的專工作所需全部,而且不存在任何以與開放合作開發(fā)了Android,它由由 33 家商和電信業(yè)組成的推廣 Andro 記制造商、的。通過觀察,全球為數(shù)眾多的移動用戶從來沒有使用過任何基于Android 系統(tǒng)的。的目標(biāo)是讓(移動通訊)不依賴于設(shè)備甚至。出于這個目的,Android;通過與全球各地將補充,而不會替代長期以來奉行的移動發(fā)展機制造商和移動運營商結(jié)成合作伙伴,開發(fā)既有用又運行商 T-Mobile USA 在紐約正式發(fā)布有的移動服務(wù),并為之推廣
12、。第一款 AndroidT-Mobile G1,該是由宏達(dá)電子代工制造,是世界第一部使用了 Android 操作系統(tǒng)機,它支持 WCDMA/HSPA 網(wǎng)絡(luò),理論速率 7.2Mbps,并支持 Wi-Fi,到目前為止,已經(jīng)有多款使用 Android 系統(tǒng)的智能,超過 5 萬個應(yīng)用程序。1.2.2國內(nèi)外研究情況概括Android 是由收購)研究開發(fā),Android 公司(和其他幾十個于 2005 年 8 月將公司建立了開放Android 公司。在短短幾年時間里,Android系統(tǒng)從一個菜鳥變成今日的巨頭,連Steve Paul Jobs(史蒂夫)的蘋果也感到了,這讓不得不為之折服。目前 Androi
13、d 系統(tǒng)已經(jīng)發(fā)展成了由眾多終端產(chǎn)品支持的超大,而應(yīng)挑起了“開源”與“封閉”爭用數(shù)量也正以難以置信的速度更新著,看來從論之日起的同時 Android 也開始了輝煌。Android系統(tǒng)內(nèi)核開發(fā)環(huán)境一般都是在Windows 或Linux 下完成的。由于 Android 系統(tǒng)的開放性和性,在未來應(yīng)用必定十分廣泛。智能智能操作系統(tǒng)簡介系統(tǒng)特點智能的系統(tǒng)特點有以下幾點:它具有一般的所有功能,能收發(fā),正常通話等應(yīng)用功能。它具有PDA 功能,其中包括PIM(個人信息管理),任務(wù)安排,瀏覽網(wǎng)頁,多應(yīng)用。它具備無線接入互聯(lián)網(wǎng)能力,即 3G 網(wǎng)絡(luò)或者 CDMA 網(wǎng)絡(luò)下的CDMA 等。它擁有人性化特點,可根據(jù)個人喜好
14、或需要進(jìn)行擴展的功能。支持第,功能強大,拓展性強。具備開放性的操作系統(tǒng),在這操作系統(tǒng)上,可以安裝的應(yīng)用程序,而使原有的程序得到更好的,得到無線的擴展2。1.3.2智能系統(tǒng)發(fā)展趨勢智能系統(tǒng)的發(fā)展趨勢比較集中的表現(xiàn)在它的開源,電池,Wi-Fi、GPS 應(yīng)用,安全系統(tǒng),以及多系統(tǒng)。開源是智能發(fā)展的一個新趨勢,目前,智能廠商和運營商都宣布了自己的開源或產(chǎn)品。前,剛剛推出了 Android 開源移動計劃。電池,電池持續(xù)時間是衡量智能的一個重要標(biāo)準(zhǔn),藍(lán)牙、Wi-Fi、免提等均消耗少量的電量,所以,為使它持續(xù)時間延長,應(yīng)盡量關(guān)閉不常用的功能。Wi-Fi,新的 Wi-Fi,可有效降低能耗,延長電池。GPS,G
15、PS 是目前應(yīng)用比較普遍的全球他智能廠商均推出了支持 GPS 功能,宏達(dá)電子、RIM 和其機 產(chǎn)品。他不僅可以幫助用戶從A 點走到 B務(wù)。點,更重要的是,GPS服務(wù)商也推出各種各樣的服安全系統(tǒng),智能著各種安全,如功能鎖定、設(shè)備鎖定、驗證、等等。多系統(tǒng),為多應(yīng)用,智能需要平衡和個人應(yīng)用所需功能。1.4Android 的優(yōu)勢現(xiàn)代技術(shù)的不斷更新,Android 系統(tǒng)在不斷更新,其中有五個方面:開放性,掙脫運營商的,豐富的硬件選擇,不受任何限制的開發(fā)商,以及無縫結(jié)合的應(yīng)用。第一,開放性。在優(yōu)勢方面,Android首先就是其開放性,開放的允許任何移動終端廠商加入到 Android中來。顯著的開放性可以使
16、其擁有的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的也將很快成熟。開發(fā)性對于 Android 的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,隨大的受益正是豐富的資源。開放的也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀機。第二,掙脫運營商的。在過去很長的一段時間,特別是在歐美地區(qū),手機應(yīng)用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從上市,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著 EDGE、 HSDPA 這些 2G 至 3G 移動網(wǎng)絡(luò)的逐步過渡和,隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談,當(dāng)你可以通過IM方便地進(jìn)行即時聊
17、天時,再回想前天價的彩信和圖鈴業(yè)務(wù),就如在一般?互聯(lián)網(wǎng)巨頭推動的 Android 終端天生就有網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)更近。第三,豐富的硬件選擇。這一點還是與 Android的開放性相關(guān),由于Android 的開放性,眾多的廠商會推奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至的兼容,好比你從諾基亞Symbian 風(fēng)格一下改用蘋果,同時還可將 Symbian 中優(yōu)秀的帶到上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移,是不是非常方便呢?第四,不受任何限制的開發(fā)商。Android提供給第開發(fā)商一個十分寬泛、的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的
18、會誕生。但也有其兩面性,、方面的程序和如何控制正是留給 Android 難題之一。第五,無縫結(jié)合的應(yīng)用。如今叱詫互聯(lián)網(wǎng)的已經(jīng)走過 10 年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,服務(wù)如地圖、 郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而 Android將無縫結(jié)合這些優(yōu)秀的服務(wù)。1.5Beagoard 開發(fā)的特點及優(yōu)勢Beagoard 單板計算機的特點有以下幾點:完全獨立;有 USB 2.0 接口,DVI-D 接口;SD/MMC 卡的擴充;ARM 的 Cortex-A8 處理器;三維(720P);運行在 2 周,無需風(fēng)扇;512 的內(nèi)存。和移動開發(fā)而言,以 OMAP3530 為參考,其中包含
19、 ARM 的Cortex- A8 的600MHz,erVR SGX530 的 OpenGL/ ES 三維,TMS320C64x型的 DSP,256MB 的LPDDR,USB2 OTG 功能,JTAG 接口,擴展區(qū),支持 SD/MMC 卡,以及 1200 的DMIPS。對于者而言物美價廉,且可以自己動手操作,自己進(jìn)行修改,最后得到一個高科技產(chǎn)品,使得它的者越來越多,其中能制作的產(chǎn)品有:機器人;DIY 的無人機(無人駕駛飛行器);DIY 的平板電腦,筆記本電腦,移動;能供電的計算器;基于 ARM 的系統(tǒng),德州儀器的 OMAP 編程,Linux,數(shù)字信號處理,3D加速度;國產(chǎn)器;極低功耗的家用服務(wù)器
20、;示意圖可供重新設(shè)計,以適應(yīng)用戶自己的使用。以上只是一些方面,還有很多可供者自行去發(fā)現(xiàn),去探索。1.6本文工作安排Android 系統(tǒng)本身是一個龐大的系統(tǒng),移植并不需要精通 Android 的每一個部分,需要考慮的是 Android 系統(tǒng)的硬件抽象層(HAL)和 Linux 中的相關(guān)設(shè)備驅(qū)動程序。Android 系統(tǒng)的移植工作的目的是為了在特定的硬件上運行 Android 系統(tǒng)。移植的目的就是為了改動較小的內(nèi)容,支撐較為龐大上層的系統(tǒng)。同時由于硬件抽象層具有標(biāo)準(zhǔn)的接口,在各個不同的的實現(xiàn)中可以互相參考,雖然具體實現(xiàn)的內(nèi)容不同,但是思路類似,可以相互參考。Beagoard 是一種開放硬件的單板計
21、算機,能夠以合理的速度運行 Linux,同時保持價格低廉。其中包含一個 Texas Instruments OMAP3530 system-on-a-chip(SoC)Beag處理器 (ARM Cortex A-8 core),最高運行頻率為 600MHz。本文對oard 開發(fā)板進(jìn)行了應(yīng)用,構(gòu)建以 Beagoard 開發(fā)板為Linux操作系統(tǒng)的開發(fā)。Andriod 系統(tǒng)內(nèi)核如何通過軟硬件編譯將系統(tǒng)內(nèi)核移植到Beagoard 開發(fā)板上包括系統(tǒng)文件的移植。另外在移植成功后,完成一個簡單 Andriod 應(yīng)用程序開發(fā),最后對移植的效果和問題進(jìn)試和分析。Android 系統(tǒng)在移植到 Beagoard
22、開發(fā)板的過程中,把握關(guān)鍵要點,減少工作量是一個重要的方面。從工作的角度,通常的方法為,首先要熟悉硬件抽象層的接口,其次要集成和復(fù)用已有的驅(qū)動程序,主要的工作量在硬件抽象層的實現(xiàn)中。為了更好地理解和調(diào)試系統(tǒng),也應(yīng)該適當(dāng)?shù)亓私馍蠈訉τ布橄髮拥恼{(diào)用情況。安排如下:第一章:緒論。該章介紹 Android 系統(tǒng)的特點,及Beagoard 開發(fā)板特點功能,在此基礎(chǔ)上,結(jié)合設(shè)計背景,給出本文設(shè)計內(nèi)容、課題意義。第二章:移植開發(fā)。對 Android 操作系統(tǒng)作了系統(tǒng)介紹,并闡述了 Android系統(tǒng)的體系結(jié)構(gòu)和設(shè)計方法。第三章:開發(fā)板簡介。介紹 Beag用。oard 開發(fā)板上的 OMAP 3530 相關(guān)介紹
23、及應(yīng)第四章:系統(tǒng)移植。Android 系統(tǒng),搭建工作環(huán)境,源代碼,對移植的步驟進(jìn)行了研究分析。第五章:總結(jié)、展望。第二章移植開發(fā)概述2.1Android 的體系結(jié)構(gòu)與設(shè)計實現(xiàn)2.1.1Android 體系結(jié)構(gòu)簡介Android 作為一個移動設(shè)備的,其層次結(jié)構(gòu)包括了一個操作系統(tǒng)(OS),中間件(MiddleWare)和應(yīng)用程序(Application)。根據(jù) Android 的框圖,其層次結(jié)構(gòu)自下而上分為以下幾個層次:操作系統(tǒng)層(OS)Android 使用 Linux2.6 作為操作系統(tǒng),Linux2.6 是一種標(biāo)準(zhǔn)的技術(shù),Linux也是一個開放的操作系統(tǒng)。Android 對操作系統(tǒng)的使用包括和
24、驅(qū)動程序兩部分,Android 的 Linux為標(biāo)準(zhǔn)的 Linux2.6 內(nèi)核,Android的是需要一些與移動設(shè)備相關(guān)的驅(qū)動程序。主要的驅(qū)動如下所示:顯示驅(qū)動(Display Driver):常用基于Linux 的幀緩沖(Frame Buffer)驅(qū)動;Flash 內(nèi)存驅(qū)動(Flash MemoryDriver);照相機驅(qū)動(Camera Driver):常用基于 Linux 的v4l(for )驅(qū)動; 音頻驅(qū)動( Audio Driver ): 常用基于 ALSA ( Advanced Linux Sound Architecture,高級 Linux 聲音體系)驅(qū)動;WiFi 驅(qū)動(Ca
25、mera Driver):基于 IEEE802.11 標(biāo)準(zhǔn)的驅(qū)動程序;鍵盤驅(qū)動(KeyBoard Driver);藍(lán)牙驅(qū)動(BluetoothDriver);Binder IPC 驅(qū)動: And 一個特殊的驅(qū)動程序,具有單獨的設(shè)備節(jié)點,提供進(jìn)程間通訊的功能;er Management(能源管理)。各種庫(Libraries)和 Android 運行環(huán)境(RunTime)系統(tǒng),相當(dāng)于中間件層次。Android 的本層次分成兩本層次對應(yīng)一般個部分一個是各種庫,另一個是 Android 運行環(huán)境。本層的內(nèi)容大多是使用 C+實現(xiàn)的。在其中,各種庫包括:C 庫:C 語言的標(biāo)準(zhǔn)庫,這也是系統(tǒng)中一個最為底層
26、的庫,C 庫是通過Linux 的系統(tǒng)調(diào)用來實現(xiàn)。多框架(MediaFrameword):這部分內(nèi)容是 Android 多的部分,基于 Packet(即 PV)的OpenCORE,從功能上本庫一共分為兩大部分,一個部分是音頻、的回放(PlayBack),另一部分是則是音的(Recorder)。其中 SGL 是 2D 圖像引擎;SSL 即Secure Socket Layer 位于TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持;OpenGL ES 1.0 本部分提供了對 3D 的支持;界面管理工具(Surface Management)本部分提供了對管理顯示子系統(tǒng)等功能;是一個通用
27、的數(shù)據(jù)庫;WebKit 是網(wǎng)絡(luò)瀏覽器的;Free Type 是位圖和矢量字體的功能。Android 的各種庫一般是以系統(tǒng)中間件的形式提供的,它們均有一個顯著特點就是與移動設(shè)備的應(yīng)用密切相關(guān)。Android 運行環(huán)境主要指的虛擬機技術(shù)Dalvik。Dalvik 虛擬機和一般JAVA 虛擬機(Java VM)不同,它執(zhí)行的不是 JAVA 標(biāo)準(zhǔn)的字節(jié)碼(byte code)而是 Dalvik 可執(zhí)行格式(.dex)中執(zhí)行文件。在執(zhí)行的過程中,每一個應(yīng)用程序即一個進(jìn)程(Linux 的一個Pros)3。二者最大的區(qū)別在于Java VM 是以基于棧的虛擬機(Stack-based),而 Dalvik 是基
28、于寄存器的虛擬機(Register-based)。顯然,后者最大的好處在于可以根據(jù)硬件實現(xiàn)更大的優(yōu)化,這更適合移動設(shè)備的特點。應(yīng)用程序框架(Application Framework)Android 的應(yīng)用程序框架為應(yīng)用程序?qū)拥拈_發(fā)者提供 APIs,它實際上是一個應(yīng)用程序的框架4。由于上層的應(yīng)用程序是以 JAVA 構(gòu)建的,因此本層次提供的首先包含了 UI 程序中所需要的各種控件,例如: Views (視圖組件)包括 lists(列表), grids(柵格), text boxes(文本框)等。甚至一個的 Web 瀏覽器。一個 And 的應(yīng)用程序可以利用應(yīng)用程序框架中的以下幾個部分:Activi
29、ty(活動);Broadcastent Receiver(廣播意圖接收者);Service(服務(wù));ContentProvider(內(nèi)容提供者)。應(yīng)用程序(Application)Android 的應(yīng)用程序主要是用戶界面(Usererface)方面的,通常以JAVA程序編寫,其中還可以包含各種資源文件(放置在 res 目錄中)JAVA 程序及相關(guān)資源經(jīng)過編譯后,將生成一個 APK 包。Android 本身提供了主屏幕(Home),聯(lián)系人(Contact),(Phone),瀏覽器(Browers)等眾多的應(yīng)用。同時應(yīng)用程序的開發(fā)者還可以使用應(yīng)用程序框架層的 API 實現(xiàn)自己的程序。這也是Andr
30、oid 開源的巨大潛力的體現(xiàn)。2.1.2Android 架構(gòu)圖圖 2.1 展示了 Android 操作系統(tǒng)的主要組件:持。2.1.4Linux 內(nèi)核Android 是基于 Linux 內(nèi)核的操作系統(tǒng),由早期開發(fā)5。Android 系統(tǒng)依賴Linux2.6 版,提供系統(tǒng)服務(wù):安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)組、驅(qū)動模型。內(nèi)核部分還相當(dāng)于一個介于硬件層和系統(tǒng)中其他組之間的一個抽象層次。2.1.5庫類在 Android 系統(tǒng)中包含一套 C/C+庫,這些庫類都能被 Android 系統(tǒng)中的不同組件使用6。開發(fā)者可以通過這些相應(yīng)的程序框架使用其功能,部分庫如下:surface Manager(管理范圍):
31、主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管理的功能,在顯示與存取操作間的對應(yīng)、互動以及實現(xiàn)無接縫的 ZD/3D 多應(yīng)用程序之間的整合。例如:在 ZD、ZD 顯示上的合動作。、疊3D libraries :基于 OpenGL ES 1.0 API 的實現(xiàn); 該類庫使用硬件 3D 加速器(如果硬件支持的話)或者內(nèi)置的、高度優(yōu)化的 3D能將硬件 3D 功能做最優(yōu)化的處理顯示。SGL:處理有關(guān)的底層 2D 圖形引擎7。加速機制。Media Libraries :多流行音頻和基于Packets Open CORE;支持很格式、靜態(tài)圖形文件,其中包括MPEG4, H.264, MP3,AAC,AMR,
32、JPG 和PNG 的和錄制。FreeType :主要是用來顯示點陣圖和處理向量字形的(支持位圖和矢量字體)。:是一套開放性的關(guān)聯(lián)式資料庫,能干、輕量級的關(guān)系型數(shù)據(jù)庫引擎,面向所有應(yīng)用。LibWebCore : 指流行的瀏覽器引擎,可以支持 Android 瀏覽器和嵌入應(yīng)用的WEB 視圖組件。libc :就是一個 BSD 標(biāo)準(zhǔn) C 類庫。但是,針對 Linux最佳化的調(diào)整。裝置進(jìn)行過2.2Android Runtime (Android 運行時組件)Android 的類庫提供 Java 類庫所提供的絕大部分功能。每個 Android應(yīng)用都運行在自己已有的進(jìn)程上,享有 Dalvik 虛擬機為它分配
33、的專有實例。為了支持多個虛擬機在同一個設(shè)備上高效運行,Dalvik 被改寫過。Dalvi 虛擬機執(zhí)行的是 Dalvik 格式的可執(zhí)行文件(.dex)該格式經(jīng)過優(yōu)化,以降低內(nèi)存耗用到最低。Java 編譯器將 Java 源文 件轉(zhuǎn)為 class 文件,class 文件又被內(nèi)置的dx 工具轉(zhuǎn)化為 dex 格式文件,這種文件在 Dalvik 虛擬機上并運行8。在一些底層功能比如線程和低內(nèi)存管理方面,Dalvik 虛擬機是依賴Linux 內(nèi)核。第三章Beagledoard 開發(fā)板3.1開發(fā)板簡介Beagoard 是一種開放硬件的單板計算機,Beagoard 是一種便攜式參考版,是 TI 與 Digi-K
34、ey(公司)共同推出的 ARM 開發(fā)板,具有功能強大、成本低廉、尺寸便攜等諸多優(yōu)點,目前被廣泛應(yīng)用于開源教育領(lǐng)域。Beagoard 是基于 TI 的 OMAP3 處理器,又后續(xù)推出的 Beagoard-xM 基于 TI 的 DM3730處理器,這兩款處理器都是 ARM Cotex A8 的系列的主流。,處理能力應(yīng)該屬于目前 ARMBeag系統(tǒng)。oard 是一個廉價的,非常適合學(xué)習(xí)如何建立 Linux 和 AndroidBeagoard 性能也很不錯,周邊接口也非常豐富(詳細(xì)見圖)。Beagoard最大優(yōu)勢在于其豐富的開源支持。圖 3.1 是Beagoard 開發(fā)板結(jié)構(gòu)示意圖,如下:圖 3.1B
35、eagoard 開發(fā)板Beagoard 單板計算機的幾個特點:完全獨立;USB 2.0 接口,DVI-D 接口;SD/MMC 卡的擴充;ARM 的 Cortex-A8 處理器;三維運行 2 周期,無需風(fēng)扇。(720P);它可Beagoard 的社區(qū)驅(qū)動:門戶,并有獨立的組,暑期編程mentorship Open 硬件,開發(fā)板的擴張和重建。3.2Beagoard OMAP3530 介紹kernel 的代碼在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化,有助于移植 Android 系統(tǒng)。OMAP3530 的高性能應(yīng)用處理器是基于增強的OMAP3 架構(gòu)的。OMAP3 架
36、構(gòu)的設(shè)計,是提供最佳的一流的、圖像和圖形處理足以支持以下內(nèi)容:瀏覽;3D;會議;高分辨率的靜態(tài)圖像;以及該器件支持次的作業(yè)系統(tǒng)(OSS)的,如:Linux、WindowsCE。OMAP 設(shè)備包括最先進(jìn)的電源管理的高性能移動產(chǎn)品所需的技術(shù)。還有一些子系統(tǒng)設(shè)備有:微處理器單元(MPU),基于 ARM Cortex- A8 的微處理器為基礎(chǔ)的子系統(tǒng)IVA2。3.2.1OMAP3530 特性O(shè)MAP3530 的特性是易于使用的音頻和基于 DaVinci技術(shù)的數(shù)字處理器的器。此外,還包括各種O / S 板的升級支持包和更新。所有編器提供免費評估,申請免費。OMAP3530 應(yīng)用的處理器有:OMAP3 架
37、構(gòu)、微處理器子系統(tǒng)、高達(dá) 720兆赫的 ARM Cortex- A8 內(nèi)核、協(xié)處理器 NEONSIMD 的高性能圖像,音頻(IVA2.2)子系統(tǒng),520 兆赫的 TMS320C64x+DSP 的,增器存?。‥DMA)控制器(有 128 個獨立頻道),強型直接硬件,新交圖形秒通用;可擴充的ERVR(OMAP3530 器件);結(jié)構(gòu)基于提供 10 瓦 MP 0.1引擎:多線程引擎結(jié)合的像素和頂點器功能;行業(yè)標(biāo)準(zhǔn)API 的支持:OpenGLES1.1 和 2.0,OpenVG1.0。細(xì)粒度任務(wù)切換,負(fù)載平衡,和電源管理,可編程高品質(zhì)圖像抗鋸齒,完全兼容 C64x 和 ARM9,商業(yè)和擴展溫度級,先進(jìn)的
38、甚長指令字(VLIW)TMS320C64x+DSP 的,高度獨立的功能。3.2.2OMAP3530 的好處OMAP3530 開發(fā)板中包含 ARM 的 Cortex- A8 的600MHz,er VR SGX530OpenGL/ ES 的三維,TMS320C64x 型的 DSP,256MB 的 LPDDR,USB2 OTG 功能,JTAG接口,擴展區(qū),支持 SD/ MMC 卡,1200 的 DMIPS??晒┦褂谜唠S意進(jìn)行移植調(diào)試。第四章 系統(tǒng)移植Android 系統(tǒng)Android 的 API Android 的 API 主要內(nèi)容有:Android Manifest.xml 是系統(tǒng)的控制文件,它告
39、訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件(尤其是活動(Activity),服務(wù)(Servies),意圖(entReeeiver)和內(nèi)容提供者(content Provider)。舉例來說,控制文件就是把活動和要接收的意圖(ents)連接在一起的“膠水”。活動就是一個有生命周期的對象。一個活動就是完成某些工作的代碼塊,這部分工作還可能包括對用戶 Ul 界面的顯示。不過這不是必須的,有些活動從不顯示 Ul 界面。視圖可以將其自身繪制到屏幕上。Android 的用戶界面由一系列的視圖樹。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)建一個新的視圖的方法來使用自定義的圖形處理技術(shù)(比如開發(fā)或者是
40、使用了不常用的用戶圖形窗口界面)。意圖是一個簡單的消息對象,它表示程序想做某事的“意圖”。比如應(yīng)用,程序想要顯示一個網(wǎng)頁,那么它可以通過創(chuàng)建一個ent 實例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個 URI。系統(tǒng)將定位到能處理這一eni 的代碼(在當(dāng)前情況下就是瀏覽器),并運行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。服務(wù)是運行在的一段代碼。它可以運行在它自己的進(jìn)程,也可以運行在其他應(yīng)用程序的進(jìn)程里,這取決于自身的需要.。其它的組件可以綁定到一個服務(wù)上來,通過過程調(diào)用(RPc)來調(diào)用這個方法。例如器的服務(wù),當(dāng)用戶退出選擇的界面時,仍然希望音樂依然可以繼續(xù),這時就可用服務(wù)來保證當(dāng)用戶界
41、面關(guān)閉時音樂還繼續(xù)著。通知是將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互式操來接收消息。最常見包括息、和語音郵件,但是應(yīng)用程序也可以創(chuàng)建它們自己事件。內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進(jìn)行。典型的例子就是使用內(nèi)容提供者來聯(lián)系人列表。應(yīng)用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時也可以定義自己的內(nèi)容提供者來向其它應(yīng)用提供數(shù)據(jù)服務(wù)。4.2移植實現(xiàn) Android 系統(tǒng)移植的移植包括四個模塊9 :U-boot、Linux kernel、 Android 系統(tǒng)框架、 Android 應(yīng)用程序。引導(dǎo)加載程序。包括在固件(firmware)中的 boot 代碼(可選),和 BootLoad
42、er 兩大部分。采用U-boot。Linux 內(nèi)核。特定于板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash 內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ram disk 來作為root fs。用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。是由 Android 系統(tǒng)提供。4.2.1U-boot 的體系結(jié)構(gòu)U-boot 和目錄結(jié)構(gòu)類似于 Linux 內(nèi)核的結(jié)構(gòu),各主要目錄包含代碼的功能為:board,common,CPU,disk,doc,drivers,include,lib_x,net,tools.board:和一些已有開發(fā)板有關(guān)的文件. 每一個開發(fā)板都以一個子目錄出現(xiàn)在當(dāng)前目錄中。comm
43、on:實現(xiàn) U-boot 命 令行下支持例如bootm 命令對應(yīng)就是cmd_bootm.c。令,每一條命令都對應(yīng)一個文件。CPU:與特定 CPU 架 構(gòu)相關(guān)目錄,每一款 Uboot錄下對應(yīng)一個子目錄,比子目錄arm926ejs 就是架構(gòu)目錄。下 支持的 CPU 在該目開發(fā)板上使用的cpu 的disk:對磁盤的支持。doc:文檔目錄。U-boot 有非常完善的文檔,大家參考閱讀。drivers:U-boot 支持的設(shè)備驅(qū)動程序都放在該目錄,比如各種網(wǎng)卡、支持CFI 的Flash、串口和 USB 等。FS:支持的文件系統(tǒng),U-boot 現(xiàn)在支持cramfs、fat、fdos、jffs2 和regi
44、sterfs。include:Uboot 使用的頭文件,還有對各種硬件 支持的匯編文件,系統(tǒng)的配置文件和對文件系統(tǒng)支持的文件。該目錄下configs 目錄有與開發(fā)板相關(guān)的配置頭文件,如 leopard2a.h。該目錄下的 asm 目錄有與CPU 體系結(jié)構(gòu)相關(guān)的頭文件,asm 對應(yīng)的是asmarm。lib_x: 與體系結(jié)構(gòu)相關(guān)的庫文件。如與 ARM 相關(guān)的庫放在lib_arm 中。net:與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼,BOOTP 協(xié)議、TFTP 協(xié)議、RARP 協(xié)議和NFS 文件系統(tǒng)的實現(xiàn)。tools:生成U-boot 的工具,如:mkimage, crc 等等。4.3環(huán)境搭建搭建移植環(huán)境主要有:第一
45、部,2 臺電腦,SBC3530 一臺,使用一個路由器來互相聯(lián)網(wǎng)。第二部,電腦 A 跑 XP 系統(tǒng),提供 TFTPD 服務(wù),使用 Secure CRT 來登陸 SBC3530 的串口,使用Source Insight 來檢索kernel 和android 的源代碼,使用SFU提供 NFS 服務(wù)來在電腦AB 之間進(jìn)行文件共享。第三部,電腦 B 跑 Frdora13,負(fù)責(zé)編譯 Android,并為 SBC3530 提供 NFS 的ROOT 掛載服務(wù)。4.4移植步驟U-boot 源代碼:U-boot 的源代碼可以從使用的 Atmel 的上,由于到 Atmellinux4sam 官網(wǎng)已經(jīng)移植成功的U-b
46、oot 源代碼直接使:h/linux4sam/bin/view/Linux4SAM/U-Boot。用。添加開發(fā)板支持,創(chuàng)建代碼目錄:board/atmel/at91sam9m10g45ek 增加開發(fā)板的支持代碼:board/atmel/at91sam9m10g45ek/nand.c添加 nandflash 的開發(fā)板讀寫支持。 board/atmel/at91sam9m10g45ek/led.c添加開發(fā)板的 LED 控制board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c添加開發(fā)板硬件資源初始化board/atmel/at91sam9m10g45ek/p
47、artition.c添加 flash 分區(qū)信息+ 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 配置文件創(chuàng)建配置文件:include/configs/at91sam9m10g45ek.h修改全局 Makefile 文件增加開發(fā)板選項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準(zhǔn)備好 AT91 u-boot 的源代碼后, 交叉編譯 U-boot分為兩步 : 配置和編交叉編譯工具來編譯譯。可以使用 a
51、rm-elf- 和 arm-Linux- ARM GCCU-boot。下面是編譯 AT91sam9g45 開發(fā)板的步驟:make distcleanmake at91sam9g45ekes_nandflash_configmakLE=piler 當(dāng)其不在你的當(dāng)前設(shè)置路徑中時才需要。通常refix- 應(yīng)該是這個樣子arm-linux- or arm-elf-編譯結(jié)束后將會在當(dāng)?shù)膗-boot 二進(jìn)制可執(zhí)行文件u-boot.bin 和相應(yīng)的二進(jìn)制ELF 文件pil前路徑生成u-boot.u-boot.bin 就是格式的二進(jìn)制文件,要到開發(fā)板上的二進(jìn)制鏡像文件 u-boot 是 ELF可以用來調(diào)試U-
52、boot。4.4.2Linux kernel 的移植通過和標(biāo)準(zhǔn)的Linux 2.6.25 Kernel 的對比,可以發(fā)現(xiàn),其主要增加了以下的內(nèi)容:基于 ARM 架構(gòu)增加 Gold-Fishkernel/arch/arm/mach-goldfish kernel/include/asm-arm/arch-goldfish,相應(yīng)增加的目錄如下:Gold-Fish采用的是ARM926T CPU 作為BaseBand 處理器, 該CPU 主頻至少為 200M HZ. 采用MSM7201A C528MHZ.RM 11)作為主CPU, 其主頻為增加了yaffs2 FLASH 文件系統(tǒng),相應(yīng)增加的目錄為:k
53、ernel/fs/yaffs2,實際上,Android 包經(jīng)過編譯后生成的system.img 和 ramdisk.img 文件就是 yaffs2 格式的包。增加了 Android 的相關(guān) Driver,相應(yīng)目錄為:kernel/drivers/android主要分為:Android IPC 系統(tǒng): Binder;Android 日志系統(tǒng): Logger;Android 電源管理:er ; Android 鬧鐘管理: Alarm ; Android 內(nèi)存控制臺:Ram_console;Android 時鐘控制的gpio: Timed_gpio。增加了switch 處理, 相應(yīng)的目錄為:kern
54、el/drivers/switch/增加了一種新的共享內(nèi)存處 理方 式 , 相應(yīng)增加的文 件為:kernel/mm/ashmem.c 其他為Linux-2.6.25 內(nèi)核所做的補丁等等,例如BlueTooth,在此不做詳細(xì)分析另外 GoldFish字符輸出設(shè)備:kernel/drivers/char/goldfish_tty.c圖象顯示設(shè)備: (Frame Buffer) kernel/drivers/相關(guān)的驅(qū)動文件如下:/goldfishfb.c鍵盤輸入設(shè)備:kernel/drivers/input/keyboard/goldfish_events.c RTC 設(shè)備:(Real Time C
55、lock) kernel/drivers/rtc/rtc-goldfish.c USB Device 設(shè)備:kernel/drivers/usb/gadget/android_adb.cSD 卡設(shè)備:kernel/drivers/mmc/host/goldfish.cFLASH 設(shè)備:kernel/drivers/mtd/devikernel/drivers/mtd/devi/goldfish_nand.c/goldfish_nand_reg.h;LED 設(shè)備:kernel/drivers/leds/ledtrig-sleep.c電源設(shè)備:kernel/drivers/er/goldfish_
56、battery.c音頻設(shè)備:kernel/arch/arm/mach-goldfish/audio.c電源管理:kernel/arch/arm/mach-goldfish/pm.c 時鐘管理:kernel/arch/arm/mach-goldfish/timer.c然后對Linux 內(nèi)核進(jìn)行移植有以下幾個步驟:Linux 內(nèi)核源代碼 Linux 內(nèi)核:在 Atmel 移植成功的 linux 內(nèi)核基礎(chǔ)上修改地址:h/linux4sam/bin/view/Linux4SAM/LinuxKernel電源管理修改目錄 drivers/er/ 下的 Makefile 文件,增加下面一行:obj-$(CO
57、NFIG_BATTERY_DUMMY)+=dummy_battery.o修 改 目 錄drivers/er/下的 Kconfig 文件,增加以下內(nèi)容:config BATTERY_DUMMYtrise dummy battery driver helpSay Y here to enable support for dummy battery driver.在 drivers/er/ 目錄增加 dummy_battery.c , 該文件模擬電源管理器 Android可以從這個驅(qū)動文件獲得電源信息。下面描述了電源的詳細(xì)信息:Battery sus: Charging (AC).Battery l
58、evel: 58Battery scale: 100 Battery health: Good Battery Voltage: 0 mvBattery temperature: 0.0Battery technology: Li-ion更 改 開 發(fā) 版 驅(qū) 動 以 支 持Android獲 取 該 電 源 管理 數(shù) 據(jù):arch/arm/mach-at91/board-sam9m10g45ek.c,定義電源管理作為 struct platform_device battery = .name = dummy-battery,.id = -1,;電源設(shè)備:硬件:sicsic void init
59、 ek_add_device_battery(void)platform_device_register(&battery);將初始化代碼加入 ek_board_init ()函數(shù)初始化電源設(shè)備: ek_add_device_battery();LCD修改 framebuffer 驅(qū)動在目錄 driver/發(fā)板 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 換崗安全教育培訓(xùn)制度
- 法治培訓(xùn)教育制度
- 教師培訓(xùn)規(guī)定制度
- 培訓(xùn)補學(xué)制度
- 缺乏培訓(xùn)制度
- 煤礦安全宣傳培訓(xùn)制度
- 園本培訓(xùn)規(guī)章制度
- 農(nóng)村家宴培訓(xùn)考核制度
- 院咸培訓(xùn)制度
- 培訓(xùn)物料管理制度
- PDLC薄膜性能的研究
- 一級2026年注冊建筑師之設(shè)計前期與場地設(shè)計考試題庫300道附參考答案【黃金題型】
- 三方協(xié)議書就業(yè)協(xié)議書
- 排水管網(wǎng)疏通與養(yǎng)護(hù)技術(shù)方案
- 地源熱泵機房施工規(guī)劃與組織方案
- 太倉市高一化學(xué)期末考試卷及答案
- 肝內(nèi)膽管惡性腫瘤護(hù)理查房
- 2025-2026學(xué)年浙教版(2023)初中信息科技七年級上冊教學(xué)計劃及進(jìn)度表
- 昆明醫(yī)科大學(xué)海源學(xué)院《高等數(shù)學(xué)下》2024-2025學(xué)年第一學(xué)期期末試卷
- 中國特發(fā)性面神經(jīng)麻痹(面癱)治療指南(2022)解讀
- 2025年浙江省委黨校在職研究生招生考試(社會主義市場經(jīng)濟)歷年參考題庫含答案詳解(5卷)
評論
0/150
提交評論