2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p>  Android系統(tǒng)在Beagleboard上的移植</p><p>  專 業(yè): 電子信息科學(xué)與技術(shù) </p><p>  指導(dǎo)教師: </p><p>  學(xué)生姓名:

2、 </p><p>  學(xué)生學(xué)號: </p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  AbstractI</p><p>&l

3、t;b>  第一章 緒論1</b></p><p>  1.1 前言...................................................1</p><p>  1.2 課題背景及國內(nèi)外研究情況1</p><p>  1.2.1 課題背景1</p><p>  1.2.2 國內(nèi)

4、外研究情況概括2</p><p>  1.3 智能手機(jī)操作系統(tǒng)簡介2</p><p>  1.3.1 智能手機(jī)系統(tǒng)特點(diǎn)2</p><p>  1.3.2 智能手機(jī)系統(tǒng)發(fā)展趨勢3</p><p>  1.4 Android的優(yōu)勢3</p><p>  1.5 Beagleboard開發(fā)平臺的特點(diǎn)及優(yōu)勢

5、4</p><p>  1.6 本文工作安排5</p><p>  第二章 移植開發(fā)平臺概述6</p><p>  2.1 Android的體系結(jié)構(gòu)與設(shè)計(jì)實(shí)現(xiàn)6</p><p>  2.1.1 Android體系結(jié)構(gòu)簡介6</p><p>  2.1.2 Android架構(gòu)圖7</p>

6、<p>  2.1.3 應(yīng)用框架(Application Frameworks)8</p><p>  2.1.4 Linux內(nèi)核9</p><p>  2.1.5 庫類9</p><p>  2.2 Android Runtime (Android 運(yùn)行時(shí)組件)10</p><p>  第三章 Beagled

7、oard開發(fā)板12</p><p>  3.1 開發(fā)板簡介12</p><p>  3.2 Beagle Board OMAP3530介紹12</p><p>  3.2.1 OMAP3530特性12</p><p>  3.2.2 OMAP3530的好處12</p><p>  第四章 系統(tǒng)移植

8、13</p><p>  4.1 Android系統(tǒng)解析13</p><p>  4.1.1 Android的API13</p><p>  4.2 移植14</p><p>  4.2.1 U-boot的體系結(jié)構(gòu)14</p><p>  4.3 環(huán)境搭建15</p><p>

9、;  4.4 移植步驟15</p><p>  4.4.1 交叉編譯U-boot19</p><p>  4.4.2 Linux kernel的移植19</p><p>  4.4.3 獲取Android源代碼18</p><p>  4.4.4 配置并編譯 Android20</p><p>  

10、4.4.5 系統(tǒng)功能測試23</p><p>  第五章 總結(jié)、展望29</p><p><b>  參考文獻(xiàn)28</b></p><p><b>  致謝29</b></p><p>  Android系統(tǒng)在Beagleboard上的移植</p><p><

11、;b>  摘要</b></p><p>  自從Google發(fā)表手機(jī)開發(fā)軟件平臺——Android系統(tǒng)后,很快引起了全世界自由軟件社群的積極參予,由于開源Android平臺的移動(dòng)電話的推出,由Google,出現(xiàn)了在OEM社會(huì)重大利益,也為其他定制Android的嵌入式平臺,如作為上網(wǎng)本,機(jī)頂盒,汽車儀表板等。該機(jī)器人可用于制作優(yōu)勢多個(gè)設(shè)備平臺將意味著一個(gè)設(shè)備開發(fā)的應(yīng)用程序可以很容易地作出可供移植

12、的需要以最小的另一個(gè)平臺。而且現(xiàn)在很多公司正在或計(jì)劃推出基于Android的智能手機(jī)和平板電腦。</p><p>  Android平臺提供給普通開發(fā)者非常靈活的自由移植空間,本文先介紹智能手機(jī)操作系統(tǒng)的體系結(jié)構(gòu)、特點(diǎn)以及國內(nèi)外的研究情形,然后基于Beagleboard一種開放硬件的單板計(jì)算機(jī)。kernel的代碼在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化, OMAP3530應(yīng)用處

13、理器:OMAP?3架構(gòu)、微處理器子系統(tǒng)、高達(dá)720兆赫的ARM Cortex?- A8內(nèi)核、協(xié)處理器的NEON?SIMD的高性能圖像,視頻,音頻,有助于移植Android 。同時(shí)提供一些簡單的Android功能拓展。</p><p>  關(guān)鍵詞:智能手機(jī)操作系統(tǒng);Android;BeagleBoard OMAP3530 Kit;移植</p><p>  Android on The Tra

14、nsplant System in Beagle Board</p><p><b>  Abstract</b></p><p>  Ever since Google released the software platform for mobile development - Android system, soon attracted the world

15、9;s active participation in the free software community, the open-source Android platform for mobile phones launched by Google, there was significant interest in the OEM community, Customize Android for other embedded pl

16、atforms, such as the Internet, set-top boxes, automobile instrument panels. The robot can be used to make advantage of multiple device platforms will mean that applica</p><p>  Keywords:smart phone operating

17、 system,Android;BeagleBoard OMAP3530,transplantation</p><p><b>  朗讀</b></p><p>  顯示對應(yīng)的拉丁字符的拼音</p><p><b>  字典</b></p><p><b>  第一章 緒論</b

18、></p><p><b>  1.1 前言</b></p><p>  現(xiàn)代信息技術(shù)迅猛發(fā)展的同時(shí)手機(jī)系統(tǒng)也逐漸被大眾所熟知,相應(yīng)的軟件、操作系統(tǒng)也被廣泛應(yīng)用,而且其更新速度也非常的迅速。現(xiàn)代微電子技術(shù)的發(fā)展,催生了高性能、低功耗、具有強(qiáng)大圖形處理能力的嵌入式微處理器,更使得嵌入式移動(dòng)設(shè)備可以搭載具有完全功能的操作系統(tǒng)。在智能手機(jī)領(lǐng)域,各大手機(jī)廠商都推出了自己

19、獨(dú)樹一幟的智能手機(jī)操作系統(tǒng),其中比較突出的蘋果公司推出的iphone操作系統(tǒng)和Google推出的Android操作系統(tǒng)。</p><p>  Android作為一個(gè)開源的智能平臺,以其開放性和可移植性等優(yōu)勢日益受到大眾的歡迎和更多廠商的青睞。</p><p>  本文首先是對智能手機(jī)操作系統(tǒng)和Android做了一個(gè)相關(guān)的介紹,然后寫了一些研究方向和工作側(cè)重點(diǎn)。</p><

20、;p>  1.2 課題背景及國內(nèi)外研究情況</p><p>  1.2.1 課題背景</p><p>  2008年9月,Google發(fā)表了Android開放源代碼,釋出Android程序代碼。Android 是Google開發(fā)的基于Linux平臺的開源手機(jī)操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序 —— 移動(dòng)電話工作所需全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙

21、。Google與開放手機(jī)聯(lián)盟合作開發(fā)了Android,它由由33家手機(jī)制造商、軟件商和電信業(yè)組成的推廣Andro記平臺的聯(lián)合會(huì)。</p><p>  Google通過觀察,全球?yàn)閿?shù)眾多的移動(dòng)電話用戶從來沒有使用過任何基于 Android 系統(tǒng)的電話。Google的目標(biāo)是讓(移動(dòng)通訊)不依賴于設(shè)備甚至平臺。出于這個(gè)目的,Android 將補(bǔ)充,而不會(huì)替代Google長期以來奉行的移動(dòng)發(fā)展戰(zhàn)略;通過與全球各地的手機(jī)制

22、造商和移動(dòng)運(yùn)營商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動(dòng)服務(wù),并為之推廣。美國運(yùn)行商T-Mobile USA在紐約正式發(fā)布第一款A(yù)ndroid手機(jī)T-Mobile G1,該手機(jī)是由臺灣宏達(dá)電子代工制造,是世界第一部使用了Android操作系統(tǒng)的手機(jī),它支持WCDMA/HSPA網(wǎng)絡(luò),理論下載速率7.2Mbps,并支持Wi-Fi,到目前為止,已經(jīng)有多款使用Android系統(tǒng)的智能手機(jī),超過5萬個(gè)應(yīng)用程序。</p><p&

23、gt;  1.2.2 國內(nèi)外研究情況概括</p><p>  Android是由美國Android公司(Google于2005年8月將美國Android公司收購)研究開發(fā),Google和其他幾十個(gè)手機(jī)公司建立了開放手機(jī)聯(lián)盟。</p><p>  在短短幾年時(shí)間里,Android手機(jī)系統(tǒng)從一個(gè)菜鳥變成今日手機(jī)的巨頭,連Steve Paul Jobs(史蒂夫·喬布斯)的蘋果也感到了

24、威脅,這讓我們不得不為之折服。目前Android系統(tǒng)已經(jīng)發(fā)展成了由眾多終端產(chǎn)品支持的超大平臺,而軟件應(yīng)用數(shù)量也正以難以置信的速度更新著,看來從Google挑起了“開源”與“封閉”爭論之日起的同時(shí)Android也開始了走向輝煌之路。</p><p>  Android手機(jī)系統(tǒng)內(nèi)核開發(fā)環(huán)境一般都是在Windows或Linux下完成的。由于Android系統(tǒng)的開放性和自由性,在未來應(yīng)用必定十分廣泛。</p>

25、<p>  1.3 智能手機(jī)操作系統(tǒng)簡介</p><p>  1.3.1 智能手機(jī)系統(tǒng)特點(diǎn)</p><p>  智能手機(jī)的系統(tǒng)特點(diǎn)有以下幾點(diǎn):</p><p> ?。?)它具有一般手機(jī)的所有功能,能收發(fā)短信,正常通話等應(yīng)用功能。</p><p> ?。?)它具有PDA功能,其中包括PIM(個(gè)人信息管理),日記,任務(wù)安排,瀏覽

26、網(wǎng)頁,多媒體應(yīng)用。</p><p> ?。?)它具備無線接入互聯(lián)網(wǎng)能力,即3G網(wǎng)絡(luò)或者CDMA網(wǎng)絡(luò)下的CDMA等。</p><p> ?。?)它擁有人性化特點(diǎn),可根據(jù)個(gè)人喜好或需要進(jìn)行擴(kuò)展的功能。</p><p> ?。?)支持第三方軟件,功能強(qiáng)大,拓展性強(qiáng)。</p><p> ?。?)具備開放性的操作系統(tǒng),在這操作系統(tǒng)平臺上,可以安裝更多的

27、應(yīng)用程序,而使原有的程序得到更好的提升,得到無線的擴(kuò)展。</p><p>  1.3.2 智能手機(jī)系統(tǒng)發(fā)展趨勢</p><p>  智能手機(jī)系統(tǒng)的發(fā)展趨勢比較集中的表現(xiàn)在它的開源,電池壽命,Wi-Fi、GPS應(yīng)用,安全系統(tǒng),以及多媒體系統(tǒng)。</p><p>  開源是智能手機(jī)發(fā)展的一個(gè)新趨勢,目前,智能手機(jī)廠商和運(yùn)營商都宣布了自</p><p&

28、gt;  己的開源戰(zhàn)略或產(chǎn)品。 不久前,Google 剛剛推出了Android 開源移動(dòng)平臺計(jì)劃。</p><p>  電池壽命,電池持續(xù)時(shí)間是衡量智能手機(jī)的一個(gè)重要標(biāo)準(zhǔn),藍(lán)牙、Wi-Fi、免提等均消耗少量的電量,所以,為使它持續(xù)時(shí)間延長,應(yīng)盡量關(guān)閉不常用的功能。</p><p>  Wi-Fi,新的Wi-Fi芯片,可有效降低能耗,延長電池壽命。</p><p> 

29、 GPS,GPS是目前應(yīng)用比較普遍的全球定位系統(tǒng),宏達(dá)電子、RIM 和其他智能手機(jī)廠商均推出了支持GPS 功能的手機(jī) 產(chǎn)品。他不僅可以幫助用戶從A 點(diǎn)走到B 點(diǎn),更重要的是,GPS 服務(wù)商也推出各種各樣的服務(wù)。</p><p>  安全系統(tǒng),智能手機(jī)面臨著各種安全威脅,如功能鎖定、設(shè)備鎖定、驗(yàn)證、防火墻等等。</p><p>  多媒體系統(tǒng),為提升多媒體應(yīng)用,智能手機(jī)需要平衡商用和個(gè)人應(yīng)用

30、所需功能。</p><p>  Android的優(yōu)勢</p><p>  現(xiàn)代技術(shù)的不斷更新,Android系統(tǒng)在不斷更新,其中有五個(gè)方面:開放性,掙脫運(yùn)營商的束縛,豐富的硬件選擇,不受任何限制的開發(fā)商,以及無縫結(jié)合的Google 應(yīng)用。</p><p>  開放性,在優(yōu)勢方面,Android 平臺首先就是其開放性,開放的平臺允許任何移動(dòng)終端廠商加入到Android

31、 聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個(gè)嶄新的平臺也將很快走向成熟。開發(fā)性對于Android 的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對于消費(fèi)者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會(huì)帶來更大競爭,如此一來,消費(fèi)者將可以用更低的價(jià)位購得心儀的手機(jī)。</p><p>  掙脫運(yùn)營商的束縛,在過去很長的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運(yùn)營

32、商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營商的控制。自從iPhone 上市,用戶可以更加方便地連接網(wǎng)絡(luò),運(yùn)營商的制約減少。隨著EDGE、 HSDPA 這些2G至3G 移動(dòng)網(wǎng)絡(luò)的逐步過渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營商口中的笑談,當(dāng)你可以通過手機(jī)IM 軟件方便地進(jìn)行即時(shí)聊天時(shí),再回想不久前天價(jià)的彩信和圖鈴下載業(yè)務(wù),就如在地獄一般?互聯(lián)網(wǎng)巨頭Google 推動(dòng)的Android 終端天生就有網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)更近。</

33、p><p>  豐富的硬件選擇,這一點(diǎn)還是與Android 平臺的開放性相關(guān),由于Android 的開放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、甚至軟件的兼容,好比你從諾基亞Symbian 風(fēng)格手機(jī)一下改用蘋果 iPhone,同時(shí)還可將Symbian 中優(yōu)秀的軟件帶到iPhone 上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移,是不是非常方便呢?</p>

34、<p>  不受任何限制的開發(fā)商,Android 平臺提供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android 難題之一。</p><p>  無縫結(jié)合的Google 應(yīng)用,如今叱詫互聯(lián)網(wǎng)的Google 已經(jīng)走過10 年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google

35、服務(wù)如地圖、 郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android 平臺手機(jī)將無縫結(jié)合這些優(yōu)秀的Google 服務(wù)。</p><p>  1.5 Beagleboard開發(fā)平臺的特點(diǎn)及優(yōu)勢</p><p>  Beagleboard單板計(jì)算機(jī)的特點(diǎn)有以下幾點(diǎn):完全獨(dú)立;有USB 2.0接口,DVI-D接口;SD/MMC卡的擴(kuò)充;ARM的Cortex-A8處理器;三維高清視頻(

36、720P);運(yùn)行在2周,無需風(fēng)扇;512的內(nèi)存。</p><p>  嵌入式和移動(dòng)開發(fā)人員而言,以O(shè)MAP3530為參考平臺,其中包含ARM的Cortex- A8的@600MHz,PowerVR SGX530的OpenGL/ ES三維,TMS320C64x型的DSP,256MB的LPDDR,USB2 OTG功能,JTAG接口,擴(kuò)展區(qū),支持SD/ MMC卡,以及1200的DMIPS。&

37、lt;/p><p>  對于愛好者而言物美價(jià)廉,且可以自己動(dòng)手操作,自己進(jìn)行修改,最后得到一個(gè)高科技產(chǎn)品,使得它的愛好者越來越多,其中能制作的產(chǎn)品有:機(jī)器人;DIY的無人機(jī)(無人駕駛飛行器);DIY的平板電腦,筆記本電腦,移動(dòng)電話;太陽能供電的計(jì)算器;游戲;基于ARM的系統(tǒng)芯片,德州儀器的OMAP編程,嵌入式Linux,數(shù)字信號處理,3D視頻加速度;國產(chǎn)視頻播放器;極低功耗的家用服務(wù)器;示意圖可供重新設(shè)計(jì),以適應(yīng)用戶

38、自己的使用。以上只是一些方面,還有很多可供愛好者自行去發(fā)現(xiàn),去探索。</p><p>  1.6 本文工作安排</p><p>  Android系統(tǒng)本身是一個(gè)龐大的系統(tǒng),移植并不需要精通Android的每一個(gè)部分,需要考慮的是Android系統(tǒng)的硬件抽象層(HAL)和Linux中的相關(guān)設(shè)備驅(qū)動(dòng)程序。Android系統(tǒng)的移植工作的目的是為了在特定的硬件上運(yùn)行Android系統(tǒng)。移植的目的

39、就是為了改動(dòng)較小的內(nèi)容,支撐較為龐大上層的系統(tǒng)。同時(shí)由于硬件抽象層具有標(biāo)準(zhǔn)的接口,在各個(gè)不同的平臺的實(shí)現(xiàn)中可以互相參考,雖然具體實(shí)現(xiàn)的內(nèi)容不同,但是思路類似,可以相互參考。</p><p>  BeagleBoard是一種開放硬件的單板計(jì)算機(jī),能夠以合理的速度運(yùn)行Linux,同時(shí)保持價(jià)格低廉。其中包含一個(gè)Texas Instruments OMAP3530 system-on-a-chip (SoC) 處理器 (

40、ARM Cortex A-8 core),最高運(yùn)行頻率為 600MHz。本文對Beagleboard開發(fā)板進(jìn)行了應(yīng)用,構(gòu)建以Beagleboard開發(fā)板為核心,嵌入式Linux操作系統(tǒng)的開發(fā)平臺。Andriod系統(tǒng)內(nèi)核如何通過軟硬件編譯將系統(tǒng)內(nèi)核移植到Beagleboard開發(fā)板上包括系統(tǒng)文件的移植。</p><p>  另外在移植成功后,完成一個(gè)簡單Andriod應(yīng)用程序開發(fā),最后對移植的效果和問題進(jìn)行測試和分

41、析。</p><p>  Android系統(tǒng)在移植到BeagleBoard 開發(fā)板的過程中,把握關(guān)鍵要點(diǎn),減少工作量是一個(gè)重要的方面。從工作的角度,通常的方法為,首先要熟悉硬件抽象層的接口,其次要集成和復(fù)用已有的驅(qū)動(dòng)程序,主要的工作量在硬件抽象層的實(shí)現(xiàn)中。為了更好地理解和調(diào)試系統(tǒng),也應(yīng)該適當(dāng)?shù)亓私馍蠈訉τ布橄髮拥恼{(diào)用情況。</p><p><b>  論文安排如下:</b

42、></p><p>  第一章:緒論。該章介紹Android系統(tǒng)的特點(diǎn),及Beagleboard開發(fā)板特點(diǎn)功能,在此基礎(chǔ)上,結(jié)合設(shè)計(jì)背景,給出本文設(shè)計(jì)內(nèi)容、課題意義。</p><p>  第二章:移植開發(fā)平臺。對Android操作系統(tǒng)作了系統(tǒng)介紹,并闡述了Android系統(tǒng)的體系結(jié)構(gòu)和設(shè)計(jì)方法。</p><p>  第三章:開發(fā)板簡介。介紹Beagleboar

43、d開發(fā)板上的OMAP 3530相關(guān)介紹及應(yīng)用。</p><p>  第四章:系統(tǒng)移植。解析Android系統(tǒng),搭建工作環(huán)境,下載源代碼,對移植的步驟進(jìn)行了研究分析。</p><p>  第五章:總結(jié)、展望。</p><p>  第二章 移植開發(fā)平臺概述</p><p>  2.1 Android的體系結(jié)構(gòu)與設(shè)計(jì)實(shí)現(xiàn)</p>

44、<p>  2.1.1 Android體系結(jié)構(gòu)簡介</p><p>  Android作為一個(gè)移動(dòng)設(shè)備的平臺,其軟件層次結(jié)構(gòu)包括了一個(gè)操作系統(tǒng)(OS),中間件(MiddleWare)和應(yīng)用程序(Application)。根據(jù)Android的軟件框圖,其軟件層次結(jié)構(gòu)自下而上分為以下幾個(gè)層次:</p><p><b>  操作系統(tǒng)層(OS)</b></p

45、><p>  Android使用Linux2.6作為操作系統(tǒng),Linux2.6是一種標(biāo)準(zhǔn)的技術(shù),Linux也是一個(gè)開放的操作系統(tǒng)。Android對操作系統(tǒng)的使用包括核心和驅(qū)動(dòng)程序兩部分,Android的Linux核心為標(biāo)準(zhǔn)的Linux2.6內(nèi)核,Android更多的是需要一些與移動(dòng)設(shè)備相關(guān)的驅(qū)動(dòng)程序。主要的驅(qū)動(dòng)如下所示:顯示驅(qū)動(dòng)(Display Driver):常用基于Linux的幀緩沖(Frame Buffer)驅(qū)

46、動(dòng);Flash內(nèi)存驅(qū)動(dòng)(Flash Memory Driver);照相機(jī)驅(qū)動(dòng)(Camera Driver):常用基于Linux的v4l(Video for )驅(qū)動(dòng);音頻驅(qū)動(dòng)(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高級Linux聲音體系)驅(qū)動(dòng);WiFi驅(qū)動(dòng)(Camera Driver):基于IEEE 802.11標(biāo)準(zhǔn)的驅(qū)動(dòng)程序;鍵盤驅(qū)動(dòng)(KeyBoard Driv

47、er);藍(lán)牙驅(qū)動(dòng)(Bluetooth Driver);Binder IPC驅(qū)動(dòng): Andoid一個(gè)特殊的驅(qū)動(dòng)程序,具有單獨(dú)的設(shè)備節(jié)點(diǎn),提供進(jìn)程間通訊的功能</p><p>  各種庫(Libraries)和Android運(yùn)行環(huán)境(RunTime)</p><p>  本層次對應(yīng)一般嵌入式系統(tǒng),相當(dāng)于中間件層次。Android的本層次分成兩個(gè)部分一個(gè)是各種庫,另一個(gè)是Android 運(yùn)行環(huán)境

48、。本層的內(nèi)容大多是使用C++實(shí)現(xiàn)的。在其中,各種庫包括:C庫:C語言的標(biāo)準(zhǔn)庫,這也是系統(tǒng)中一個(gè)最為底層的庫,C庫是通過Linux的系統(tǒng)調(diào)用來實(shí)現(xiàn)。多媒體框架(MediaFrameword):這部分內(nèi)容是Android多媒體的核心部分,基于PacketVideo(即PV)的OpenCORE,從功能上本庫一共分為兩大部分,一個(gè)部分是音頻、視頻的回放(PlayBack),另一部分是則是音視頻的紀(jì)錄(Recorder)。其中SGL是2D圖像引擎

49、;SSL即Secure Socket Layer位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持;OpenGL ES 1.0本部分提供了對3D的支持;界面管理工具(Surface Management)本部分提供了對管理顯示子系統(tǒng)等功能;SQLite是一個(gè)通用的嵌入式數(shù)據(jù)庫;WebKit是網(wǎng)絡(luò)瀏覽器的核心;Free Type是位圖和矢量字體的功能。</p><p>  Android 的各種庫一般

50、是以系統(tǒng)中間件的形式提供的,它們均有一個(gè)顯著特點(diǎn)就是與移動(dòng)設(shè)備平臺的應(yīng)用密切相關(guān)。</p><p>  Android 運(yùn)行環(huán)境主要指的虛擬機(jī)技術(shù)——Dalvik。Dalvik虛擬機(jī)和一般JAVA虛擬機(jī)(Java VM)不同,它執(zhí)行的不是JAVA標(biāo)準(zhǔn)的字節(jié)碼(byte code)而是Dalvik可執(zhí)行格式(.dex)中執(zhí)行文件。在執(zhí)行的過程中,每一個(gè)應(yīng)用程序即一個(gè)進(jìn)程(Linux的一個(gè)Process)。二者最大的

51、區(qū)別在于Java VM是以基于棧的虛擬機(jī)(Stack-based),而Dalvik是基于寄存器的虛擬機(jī)(Register-based)。顯然,后者最大的好處在于可以根據(jù)硬件實(shí)現(xiàn)更大的優(yōu)化,這更適合移動(dòng)設(shè)備的特點(diǎn)。</p><p>  應(yīng)用程序框架(Application Framework)</p><p>  Android的應(yīng)用程序框架為應(yīng)用程序?qū)拥拈_發(fā)者提供APIs,它實(shí)際上是一個(gè)應(yīng)

52、用程序的框架。由于上層的應(yīng)用程序是以JAVA構(gòu)建的,因此本層次提供的首先包含了UI程序中所需要的各種控件,例如: Views (視圖組件)包括 lists(列表), grids(柵格), text boxes(文本框)等。甚至一個(gè)嵌入式的Web瀏覽器。</p><p>  一個(gè)Andoid的應(yīng)用程序可以利用應(yīng)用程序框架中的以下幾個(gè)部分:Activity(活動(dòng));Broadcast Intent Receiver(

53、廣播意圖接收者);Service(服務(wù));Content Provider(內(nèi)容提供者)。</p><p>  應(yīng)用程序(Application)</p><p>  Android的應(yīng)用程序主要是用戶界面(User Interface)方面的,通常以JAVA程序編寫,其中還可以包含各種資源文件(放置在res目錄中)JAVA程序及相關(guān)資源經(jīng)過編譯后,將生成一個(gè)APK包。Android本身提

54、供了主屏幕(Home),聯(lián)系人(Contact),電話(Phone),瀏覽器(Browers)等眾多的核心應(yīng)用。同時(shí)應(yīng)用程序的開發(fā)者還可以使用應(yīng)用程序框架層的API實(shí)現(xiàn)自己的程序。這也是Android開源的巨大潛力的體現(xiàn)。</p><p>  2.1.2 Android架構(gòu)圖</p><p>  圖2.1展示了Android操作系統(tǒng)的主要組件:</p><p> 

55、 圖2.1 Android系統(tǒng)架構(gòu)圖</p><p>  2.1.3 應(yīng)用框架(Application Frameworks)</p><p>  Android 的核心應(yīng)用程序就是依賴框架層次API 開發(fā)的,程序員們可以充分使用這些API。應(yīng)用架構(gòu)設(shè)計(jì)的初衷是:簡化組件復(fù)用機(jī)制;任何應(yīng) 用都能發(fā)布自己的功能,這些功能又可以被任何其他應(yīng)用使用(當(dāng)然要受來自框架的強(qiáng)制安全規(guī)范的約束)。和

56、復(fù)用機(jī)制相同,框架允許組件的更換。</p><p>  其中所有應(yīng)用都是一組服務(wù)和系統(tǒng)的,其中包含有:一套豐富且可擴(kuò)展的視圖組件,含有l(wèi)ists, grids, text boxes, buttons, 甚至嵌入的網(wǎng)絡(luò)瀏覽器;Content Providers(內(nèi)容提供器)使一個(gè)應(yīng)用可以訪問另外一個(gè)應(yīng)用的數(shù)據(jù)(如聯(lián)系人),或者使一個(gè)應(yīng)用內(nèi)部可以共享自身數(shù)據(jù);Resource Manager(資源管理器),提供對非

57、編碼資源——例如本地化字符串、圖形和布局文件——的訪問通道;Notification Manager(通告管理器),使應(yīng)用在狀態(tài)欄顯示自定義的警報(bào)通知;Activity Manager(行動(dòng)管理器)負(fù)責(zé)管理應(yīng)用的生命周期,提供通用導(dǎo)航回退支持。</p><p>  2.1.4 Linux內(nèi)核</p><p>  Android是基于Linux內(nèi)核的操作系統(tǒng),由早期Google開發(fā)。And

58、roid系統(tǒng)依賴Linux2.6版,提供核心系統(tǒng)服務(wù):安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)組、驅(qū)動(dòng)模型。內(nèi)核部分還相當(dāng)于一個(gè)介于硬件層和系統(tǒng)中其他軟件組之間的一個(gè)抽象層次。</p><p><b>  2.1.5 庫類</b></p><p>  在Android系統(tǒng)中包含一套C/C++庫,這些庫類都能被Android系統(tǒng)中的不同組件使用。開發(fā)者可以通過這些相應(yīng)的程序框架

59、使用其功能,部分核心庫如下:</p><p>  surface Manager(管理范圍):主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管</p><p>  理的功能,在[顯示]與[存取操作]間的對應(yīng)、互動(dòng)以及實(shí)現(xiàn)無接縫的ZD/3D多應(yīng)用程序之間的整合。例如:在ZD、ZD顯示上的合成、疊合動(dòng)作。</p><p>  3D libraries :基于OpenGL E

60、S 1.0 API 的實(shí)現(xiàn); 該類庫使用硬件3D 加速器(如</p><p>  果硬件支持的話)或者內(nèi)置的、高度優(yōu)化的3D 軟件加速機(jī)制。能將硬件3D功能做最優(yōu)化的處理顯示。</p><p>  SGL:處理有關(guān)的底層2D圖形引擎。</p><p>  Media Libraries : 媒體庫基于PacketVideo's Open CORE;媒體庫支持

61、很多流行音頻和視頻格式、靜態(tài)圖形文件,其中包括MPEG4, H.264, MP3, AAC,AMR, JPG和PNG 的播放和錄制。</p><p>  FreeType :主要是用來顯示點(diǎn)陣圖和處理向量字形的(支持位圖和矢量字體)。</p><p>  SQLite :是一套開放性的關(guān)聯(lián)式資料庫,能干、輕量級的關(guān)系型數(shù)據(jù)庫引擎,面向所有應(yīng)用。</p><p>  

62、LibWebCore : 指流行的瀏覽器引擎,可以支持Android 瀏覽器和嵌入應(yīng)用的WEB 視圖組件。</p><p>  libc :就是一個(gè)BSD標(biāo)準(zhǔn)C類庫。但是,針對Linux嵌入式裝置進(jìn)行過最佳化的調(diào)整。</p><p>  2.2 Android Runtime (Android 運(yùn)行時(shí)組件) </p><p>  Android 的核心類庫提供Ja

63、va 類庫所提供的絕大部分功能。每個(gè)Android應(yīng)用都運(yùn)行在自己已有的進(jìn)程上,享有Dalvik 虛擬機(jī)為它分配的專有實(shí)例。為了支持多個(gè)虛擬機(jī)在同一個(gè)設(shè)備上高效運(yùn)行,Dalvik 被改寫過。 Dalvik 虛擬機(jī)執(zhí)行的是Dalvik 格式的可執(zhí)行文件(.dex)——該格式經(jīng)過優(yōu)化,以降低內(nèi)存耗用到最低。Java 編譯器將Java 源文 件轉(zhuǎn)為class 文件,class 文件又被內(nèi)置的dx 工具轉(zhuǎn)化為dex 格式文件,這種文件在Dalv

64、ik 虛擬機(jī)上注冊并運(yùn)行。 在一些底層功能——比如線程和低內(nèi)存管理方面,Dalvik 虛擬機(jī)是依賴Linux 內(nèi)核。</p><p>  第三章 Beagledoard開發(fā)板</p><p>  3.1 開發(fā)板簡介</p><p>  Beagleboard 是一種開放硬件的單板計(jì)算機(jī),Beagleboard是一種便攜式參考版,是TI與Digi-Key(公司)共

65、同推出的ARM開發(fā)板,具有功能強(qiáng)大、成本低廉、尺寸便攜等諸多優(yōu)點(diǎn),目前被廣泛應(yīng)用于開源教育領(lǐng)域。BeagleBoard是基于TI的OMAP3處理器,又后續(xù)推出的BeagleBoard-xM基于TI的DM3730處理器,這兩款處理器都是ARM Cotex A8的核心,處理能力應(yīng)該屬于目前ARM系列的主流。</p><p>  Beagleboard是一個(gè)廉價(jià)的平臺,非常適合學(xué)習(xí)如何建立Linux和Android系統(tǒng)

66、。</p><p>  BeagleBoard性能也很不錯(cuò),周邊接口也非常豐富(詳細(xì)見圖)。BeagleBoard最大優(yōu)勢在于其豐富的開源支持。</p><p>  圖3.1是Beagleboard開發(fā)板結(jié)構(gòu)示意圖,如下:</p><p>  圖3.1 Beagleboard開發(fā)板</p><p>  Beagleboard單板計(jì)算機(jī)的幾個(gè)

67、特點(diǎn):完全獨(dú)立;USB 2.0接口,DVI-D接口;SD/MMC卡的擴(kuò)充;ARM的Cortex-A8處理器;三維高清視頻(720P);它可運(yùn)行2周,無需風(fēng)扇</p><p>  Beagleboard的社區(qū)驅(qū)動(dòng):門戶網(wǎng)站,并有獨(dú)立的討論組,Google暑期編程mentorship Open硬件,開發(fā)板的擴(kuò)張和重建。</p><p>  3.2 Beagle Board OMAP3530介

68、紹</p><p>  kernel的代碼在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化,有助于移植Android 系統(tǒng)。OMAP3530的高性能應(yīng)用處理器是基于增強(qiáng)的OMAP?3架構(gòu)的。OMAP?3架構(gòu)的設(shè)計(jì),是提供最佳的一流的視頻、圖像和圖形處理足以支持以下內(nèi)容:</p><p>  視頻瀏覽;3D手機(jī)游戲;視頻會(huì)議;高分辨率的靜態(tài)圖像;以及該器件支持高層

69、次的作業(yè)系統(tǒng)(OSS)的,如:Linux、Windows CE。</p><p>  OMAP設(shè)備包括最先進(jìn)的電源管理的高性能移動(dòng)產(chǎn)品所需的技術(shù)。還有一些子系統(tǒng)設(shè)備有:微處理器單元(MPU),基于ARM Cortex?- A8的微處理器為基礎(chǔ)的子系統(tǒng)IVA2。</p><p>  3.2.1 OMAP3530特性</p><p>  OMAP3530的特性是易于使

70、用的音頻和基于DaVinci?技術(shù)的數(shù)字媒體處理器的視頻解碼器。此外,還包括各種O / S板的升級支持包和軟件更新。所有編解碼器提供免費(fèi)評估,申請免費(fèi)軟件。</p><p>  OMAP3530應(yīng)用的處理器有:OMAP?3架構(gòu)、微處理器子系統(tǒng)、高達(dá)720兆赫的ARM Cortex?- A8內(nèi)核、協(xié)處理器NEON?SIMD的高性能圖像,視頻,音頻(IVA2.2?)加速器子系統(tǒng),520兆赫的TMS320C64x+?D

71、SP的核心,增強(qiáng)型直接存儲(chǔ)器存?。‥DMA)控制器(有128個(gè)獨(dú)立頻道),視頻硬件加速器,新交?圖形加速器的POWERVR(OMAP3530器件);結(jié)構(gòu)基于提供10瓦M(jìn)P 0.1秒通用;可擴(kuò)充著色引擎:多線程引擎結(jié)合的像素和頂點(diǎn)著色器功能;行業(yè)標(biāo)準(zhǔn)API的支持:OpenGLES1.1和2.0,OpenVG1.0。細(xì)粒度任務(wù)切換,負(fù)載平衡,和電源管理,可編程高品質(zhì)圖像抗鋸齒,完全軟件兼容C64x和ARM9?,商業(yè)和擴(kuò)展溫度級,先進(jìn)的甚長指

72、令字(VLIW)TMS320C64x+?DSP的核心,高度獨(dú)立的功能單位。</p><p>  3.2.2 OMAP3530的好處</p><p>  OMAP3530開發(fā)板中包含ARM的Cortex- A8的@600MHz,Power VR SGX530 OpenGL/ ES的三維,TMS320C64x型的DSP,256MB的LPDDR,USB2 OTG功能,JTA

73、G接口,擴(kuò)展區(qū),支持SD/ MMC卡,1200的DMIPS??晒┦褂谜唠S意進(jìn)行移植調(diào)試。</p><p><b>  第四章 系統(tǒng)移植</b></p><p>  4.1 Android系統(tǒng)解析</p><p>  4.1.1 Android的API</p><p>  Android的API主要內(nèi)容有:<

74、;/p><p>  Android Manifest.xml是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件(尤其是活動(dòng)(Activity),服務(wù)(Servies),意圖接收器(Intent Reeeiver)和內(nèi)容提供者(content Provider))。舉例來說,控制文件就是把活動(dòng)和要接收的意圖(Intents)連接在一起的“膠水”。</p><p>  活動(dòng)就是一個(gè)有生命周期

75、的對象。一個(gè)活動(dòng)就是完成某些工作的代碼塊,這部分工作還可能包括對用戶Ul界面的顯示。不過這不是必須的,有些活動(dòng)從不顯示Ul界面。</p><p>  視圖可以將其自身繪制到屏幕上。Android的用戶界面由一系列的視圖樹構(gòu)成。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)建一個(gè)新的視圖的方法來使用自定義的圖形處理技術(shù)(比如開發(fā)游戲,或者是使用了不常用的用戶圖形窗口界面)。</p><

76、;p>  意圖是一個(gè)簡單的消息對象,它表示程序想做某事的“意圖”。比如應(yīng)用程序想要顯示一個(gè)網(wǎng)頁,那么它可以通過創(chuàng)建一個(gè)Intent實(shí)例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個(gè)URI。系統(tǒng)將定位到能處理這一Inteni的代碼(在當(dāng)前情況下就是瀏覽器),并運(yùn)行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。</p><p>  服務(wù)是運(yùn)行在后臺的一段代碼。它可以運(yùn)行在它自己的進(jìn)程,也可以運(yùn)行在其他應(yīng)用程序

77、的進(jìn)程里,這取決于自身的需要.。其它的組件可以綁定到一個(gè)服務(wù)上來,通過遠(yuǎn)程過程調(diào)用(RPc)來調(diào)用這個(gè)方法。例如媒體播放器的服務(wù),當(dāng)用戶退出媒體選擇的界面時(shí),仍然希望音樂依然可以繼續(xù)播放,這時(shí)就可用服務(wù)來保證當(dāng)用戶界面關(guān)閉時(shí)音樂還繼續(xù)播放著。</p><p>  通知是將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互式操來接收消息。最常見的通知包括短信息、通話記錄和語音郵件,但是應(yīng)用程序也可以創(chuàng)建它們自己的通

78、知事件。</p><p>  內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進(jìn)行訪問。典型的例子就是使用內(nèi)容提供者來訪問聯(lián)系人列表。應(yīng)用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時(shí)也可以定義自己的內(nèi)容提供者來向其它應(yīng)用提供數(shù)據(jù)訪問服務(wù)。</p><p><b>  4.2 移植</b></p><p>  實(shí)現(xiàn) Android 系統(tǒng)移植的移植包括四

79、個(gè)模塊:U-boot、Linux kernel、Android 系統(tǒng)框架、 Android 應(yīng)用程序。</p><p>  引導(dǎo)加載程序。包括固化在固件(firmware)中的boot代碼(可選),和Boot Loader 兩大部分。采用U-boot。</p><p>  Linux 內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動(dòng)參數(shù)。</p><p>  文件系統(tǒng)

80、。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ram disk來作為root fs。</p><p>  用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。是由Android系統(tǒng)提供。</p><p>  4.2.1 U-boot的體系結(jié)構(gòu)</p><p>  U-boot 和目錄結(jié)構(gòu)類似于 Linux 內(nèi)核的結(jié)構(gòu),各主要目錄包含代碼的功能為:</p>

81、;<p>  board:和一些已有開發(fā)板有關(guān)的文件. 每一個(gè)開發(fā)板都以一個(gè)子目錄出現(xiàn)在當(dāng)前目錄中。</p><p>  common:實(shí)現(xiàn)U-boot 命 令行下支持的命令,每一條命令都對應(yīng)一個(gè)文件。例如bootm 命令對應(yīng)就是cmd_bootm.c。</p><p>  CPU:與特定CPU 架 構(gòu)相關(guān)目錄,每一款Uboot 下 支持的CPU 在該目錄下對應(yīng)一個(gè)子目錄,比

82、如有子目錄arm926ejs 就是我們開發(fā)板上使用的cpu的架構(gòu)目錄。</p><p>  disk:對磁盤的支持。</p><p>  doc:文檔目錄。U-boot 有非常完善的文檔,推薦大家參考閱讀。</p><p>  drivers:U-boot 支持的設(shè)備驅(qū)動(dòng)程序都放在該目錄,比如各種網(wǎng)卡、支持CFI 的Flash、串口和USB 等。</p>

83、<p>  FS::支持的文件系統(tǒng),U-boot 現(xiàn)在支持cramfs、fat、fdos、jffs2 和registerfs。</p><p>  include:Uboot 使用的頭文件,還有對各種硬件平臺支持的匯編文件,系統(tǒng)的配置文件和對文件系統(tǒng)支持的文件。該目錄下configs 目錄有與開發(fā)板相關(guān)的配置頭文件,如leopard2a.h。該目錄下的asm 目錄有與CPU 體系結(jié)構(gòu)相關(guān)的頭文件,a

84、sm 對應(yīng)的是asmarm。</p><p>  lib_xxxx: 與體系結(jié)構(gòu)相關(guān)的庫文件。如與ARM 相關(guān)的庫放在lib_arm中。</p><p>  net:與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼,BOOTP 協(xié)議、TFTP 協(xié)議、RARP 協(xié)議和NFS 文件系統(tǒng)的實(shí)現(xiàn)。</p><p>  tools:生成U-boot 的工具,如:mkimage, crc 等等。<

85、/p><p><b>  環(huán)境搭建</b></p><p>  搭建移植環(huán)境主要有:</p><p>  2臺電腦,SBC3530一臺,使用一個(gè)路由器來互相聯(lián)網(wǎng)。</p><p>  電腦A跑XP系統(tǒng),提供TFTPD服務(wù),使用Secure CRT來登陸SBC3530的串口,使用Source Insight來檢索kernel和

86、android的源代碼,使用SFU提供NFS服務(wù)來在電腦AB之間進(jìn)行文件共享。 </p><p>  電腦B跑Frdora13,負(fù)責(zé)編譯Android,并為SBC3530提供NFS的ROOT掛載服務(wù)。</p><p><b>  4.4 移植步驟</b></p><p>  下載U-boot源代碼:U-boot 的源代碼可以從官方網(wǎng)站<

87、/p><p>  http://www.denx.de/wiki/U-Boot/SourceCode 上下載,由于我們使用的 Atmel 的芯片,我們到 Atmel linux4sam 官網(wǎng)下載已經(jīng)移植成功的 U-boot 源代碼直接使用。網(wǎng)址:http://www.at91.com/linux4sam/bin/view/Linux4SAM/U-Boot</p><p>  添加開發(fā)板支持,

88、創(chuàng)建代碼目錄:</p><p>  board/atmel/at91sam9m10g45ek增加開發(fā)板的支持代碼:</p><p> ?。?) board/atmel/at91sam9m10g45ek/nand.c</p><p>  添加 nandflash 的開發(fā)板讀寫支持。</p><p> ?。?) board/atmel/at91s

89、am9m10g45ek/led.c</p><p>  添加開發(fā)板的 LED 控制</p><p> ?。?) board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c</p><p>  添加開發(fā)板硬件資源初始化</p><p> ?。?) board/atmel/at91sam9m10g45ek/pa

90、rtition.c</p><p>  添加 flash 分區(qū)信息</p><p>  + {0x00000000, 0x000041FF, FLAG_PROTECT_SET, 0, "Bootstrap"},</p><p>  + {0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "En

91、vironment"},</p><p>  + {0x00008400, 0x00041FFF, FLAG_PROTECT_SET, 0, "U-Boot"},</p><p>  + {0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0, "Kernel"},</p><p&g

92、t;  + {0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0, "FS"},</p><p>  (5) board/atmel/at91sam9m10g45ek/config.mk</p><p> ?。?) board/atmel/at91sam9m10g45ek/Makefile添加Makefile文件,將添加代碼增加到

93、代碼樹中編譯</p><p>  添加 U-boot 配置文件</p><p>  創(chuàng)建配置文件:include/configs/at91sam9m10g45ek.h</p><p>  修改全局 Makefile 文件增加開發(fā)板選項(xiàng)</p><p><b>  Makefile</b></p><p

94、>  +at91sam9m10g45ek_nandflash_config</p><p>  +at91sam9m10g45ek_dataflash_config</p><p>  +at91sam9m10g45ek_dataflash_cs0_config </p><p>  +at91sam9m10g45ek_config : unconfig<

95、;/p><p>  + @mkdir -p $(obj)include</p><p>  + @if [ "$(findstring _nandflash,$@)" ] ; then</p><p>  + echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include

96、/config.h</p><p>  + $(XECHO) "... with environment variable in NAND FLASH"</p><p>  + echo "#define CFG_USE_AT91SAM9M10G45EK 1"</p><p>  >>$(obj)inc

97、lude/config.h </p><p><b>  + else </b></p><p>  + echo "#define CFG_USE_DATAFLASH 1" >>$(obj)include/config.h</p><p>  + $(XECHO) "... with en

98、vironment variable in SPI DATAFLASH CS0" ; \</p><p>  + echo "#define CFG_USE_AT91SAM9M10G45EK 1"</p><p>  >>$(obj)include/config.h ; \</p><p><b>  + f

99、i;</b></p><p>  + @$(MKCONFIG) -a at91sam9m10g45ek arm arm926ejs at91sam9m10g45ek</p><p>  atmel at91sam9</p><p>  4.4.1 交叉編譯U-boot</p><p>  準(zhǔn)備好 AT91 u-boot 的源代碼

100、后, 交叉編譯 U-boot 分為兩步 : 配置和編譯。我們可以使用 arm-elf- 和 arm-Linux- ARM GCC 交叉編譯工具來編譯U-boot。</p><p>  下面是編譯 AT91sam9g45 開發(fā)板的步驟:</p><p>  make distclean</p><p>  make at91sam9g45ekes_nandflash_

101、config</p><p>  make CROSS_COMPILE=<path_to_cross-compiler/cross-compiler-prefix-></p><p>  path_to_cross-compiler當(dāng)其不在你的當(dāng)前設(shè)置路徑中時(shí)才需要。通常 cross-compiler-prefix- 應(yīng)該是這個(gè)樣子arm-linux- or arm-elf-編

102、譯結(jié)束后將會(huì)在當(dāng)前路徑生成最新的u-boot二進(jìn)制可執(zhí)行文件u-boot.bin和相應(yīng)的二進(jìn)制ELF文件 u-boot.u-boot.bin就是我們將要下載到開發(fā)板上的二進(jìn)制鏡像文件u-boot是ELF格式的二進(jìn)制文件,我們可以用來調(diào)試U-boot。</p><p>  4.4.2 Linux kernel的移植</p><p>  通過和標(biāo)準(zhǔn)的Linux 2.6.25 Kernel 的

103、對比,可以發(fā)現(xiàn),其主要增加了以下的內(nèi)容:</p><p>  基于ARM 架構(gòu)增加Gold-Fish 平臺,相應(yīng)增加的目錄如下:</p><p>  kernel/arch/arm/mach-goldfish</p><p>  kernel/include/asm-arm/arch-goldfish</p><p>  Gold-Fish

104、平臺采用的是ARM926T CPU 作為BaseBand 處理器, 該CPU 主頻至少為200M HZ. 采用MSM7201A CPU(ARM 11)作為主CPU, 其主頻為528MHZ.</p><p>  增加了yaffs2 FLASH 文件系統(tǒng),相應(yīng)增加的目錄為:kernel/fs/yaffs2</p><p>  實(shí)際上,Android 包經(jīng)過編譯后生成的system.img 和

105、ramdisk.img 文件就是yaffs2 格式的包.</p><p>  增加了Android 的相關(guān)Driver,相應(yīng)目錄為:kernel/drivers/android</p><p>  主要分為:Android IPC 系統(tǒng): Binder;Android 日志系統(tǒng): Logger;Android電源管理: Power;Android 鬧鐘管理: Alarm;Android 內(nèi)

106、存控制臺: Ram_console;Android 時(shí)鐘控制的gpio: Timed_gpio。</p><p>  增加了switch 處理, 相應(yīng)的目錄為:kernel/drivers/switch/</p><p>  增加了一種新的共享內(nèi)存處理方式,相應(yīng)增加的文件為:kernel/mm/ashmem.c</p><p>  其他為Linux-2.6.25 內(nèi)

107、核所做的補(bǔ)丁等等,例如BlueTooth,在此不做詳細(xì)分析另外GoldFish 平臺相關(guān)的驅(qū)動(dòng)文件如下:</p><p> ?。?)字符輸出設(shè)備:kernel/drivers/char/goldfish_tty.c</p><p> ?。?)圖象顯示設(shè)備: (Frame Buffer) kernel/drivers/video/goldfishfb.c</p><p&g

108、t; ?。?)鍵盤輸入設(shè)備:kernel/drivers/input/keyboard/goldfish_events.c</p><p>  (4)RTC 設(shè)備:(Real Time Clock) kernel/drivers/rtc/rtc-goldfish.c</p><p> ?。?)USB Device設(shè)備:kernel/drivers/usb/gadget/android_ad

109、b.c</p><p> ?。?)SD卡設(shè)備:kernel/drivers/mmc/host/goldfish.c</p><p>  (7)FLASH 設(shè)備:kernel/drivers/mtd/devices/goldfish_nand.c;kernel/drivers/mtd/devices/goldfish_nand_reg.h</p><p> ?。?)L

110、ED 設(shè)備:kernel/drivers/leds/ledtrig-sleep.c</p><p>  (9)電源設(shè)備:kernel/drivers/power/goldfish_battery.c</p><p> ?。?0)音頻設(shè)備:kernel/arch/arm/mach-goldfish/audio.c</p><p>  (11)電源管理:kernel/a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論