ARM9架構(gòu)及編譯_第1頁
ARM9架構(gòu)及編譯_第2頁
ARM9架構(gòu)及編譯_第3頁
ARM9架構(gòu)及編譯_第4頁
ARM9架構(gòu)及編譯_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、ARM9架構(gòu)及編譯高通的7系芯片一般都有兩個處理器,ARM9和ARM11:ARM9負(fù)責(zé)處理通信協(xié)議、射頻、GPIO等,有一個自己的OS,叫AMSS (Advanced Mobile SubscriberSoftware。ARM11負(fù)責(zé)常見任務(wù),跑的系統(tǒng)就是 Linux,這是我們通常意義上的主控芯片。這兩個處理器通過 RPC交互,RPCM通過Shared Memory實(shí)現(xiàn)的。AMSS的軟件架構(gòu)|- AMSS|- platform卜 products卜 AMSS_CUST|-productsAMSSplatform 包含 L4、CS libstd與RTE這些為AMSSproducts下的task提

2、供了底層運(yùn)行環(huán) 比m OL4是內(nèi)核,提供地址空間、線程、IPC等功能;libstd 里面包含了 AEE(application executive)勺接口和一個靜態(tài)的 AEE庫;RTE里面包含一些與IPC有關(guān)的內(nèi)容。AMSSproducts下包含很多內(nèi)容,詳情如下:|- 76XX卜-1x/ Source code for CDMA 1x protocol|- apps/ Source code for some BREW apps, such as core and UI|- apps_proc/ Application boot loader|- build/ Trace32 JTAG sc

3、ript for building, build image, and log|- core/ Shared APIs folder|- dal/ Device abstract layer code|- data/ Source code for data services|- drivers/ Drivers for LCD, peripherals, etc.|- hal/ Hardware abstract layer code|- hdr/ Source code for high data rate protocal|- modem/ Modem AMSS source code|

4、- modem_proc/ Modem AMSS boot files|- multimedia/ Multimedia files, including audio, video, etc.|- nas/ Source code for NAS layer protocal|- secboot/ Boot loaders, from PBL to OEMSBL|- services/ Source code for services|- tools/ Code for flash operations|- wcdma/ Source code for WCDMA protocol|- wco

5、nnect/ BT soc config and ftm (factory test mode)上面這些介紹只是給大家一個整體的印象,所有這些source都是通過Rex將其組織起來的,我們看看 AMSS啟動以后運(yùn)行狀態(tài):所有的AMSS task以線程的方式運(yùn)行在 CS kernelprocess,包括CS的核心 服務(wù),者8是以task的形式運(yùn)行在REX之上的。這里的userprocess我猜測就是products/apps里面的類容。看完這個圖以后我們再來詳細(xì)一下AMSSsource的啟動流程:qcsbl_main_ctl 會跳至U l4kernel, l4kernel 啟動好以后會啟動 ig

6、unarserver,然 后啟動rex進(jìn)程(執(zhí)行/service/tmc/mobile.c里的 main函數(shù)),amss/rex以一個進(jìn) 程的方式運(yùn)行在l4microkernel之上,所有的task都是L4的一個線程。products/76xx/services/tmc.c 里面的 tmc_define_tasks 這個函數(shù)通過的宏的 判斷來決定需要啟動哪些task,而這些宏的控制又是通過 products/76xx/build/ms/cust*h 和 products/76xx/build/ms/target*h 來控制的,在編譯的時候通過配置 tsncjnlym.cmd之類的來控制一些編譯

7、環(huán)境選 項,以及那些模塊需要編譯,通過這些cust或者target頭文件控制系統(tǒng)啟動以后哪些task會被系統(tǒng)啟動。我們看 products/76xx/services/tmc.c下的 tmc_define_tasks這個函數(shù)可以知道現(xiàn)在AMSS里面支持多少TASK這個4000 多行的函數(shù)里面全部都是調(diào)用 rex系統(tǒng)函數(shù)rex_def_task對task的定義,舉個 nv的例子:5374rex_def_task(&nv_tcb,5375(rex_stack_word_type*) nv_stack,5376NV_STACK_SIZ,5377(rex_priority_type) NV_P

8、RI,5378nv_task,53790L);其中nv_task就是這個task的入口函數(shù),我們跟蹤這個函數(shù)就能找到這個 task的執(zhí)行和調(diào)用過程。編譯ARM9的source有兩種方式:在windows(cmd.exe)下編譯,在linux下編譯。因?yàn)槲覀儧]有l(wèi)inux下的 RVCT2.2的licence,所以如果要在linux環(huán)境下編譯的話必須使用 cygwin。下面分別介紹這兩種方式下的編譯,在linux環(huán)境下的編譯只稍微講一下,基本和windows 一樣的。一、cmd.exe1) toolsRVDS (RVCT)2.2.1BLD593GNU makeGNU awk3.1.4 or lat

9、erPerl5.8.5 or laterPython2.4.3注息:必須是Python2.4.3官方下載地址:http:2.3.4/RVCT安裝以后必須打上官方的593的patch才能正常編譯,打好patch以 后執(zhí)行下面的操作來使用patch的armcc來進(jìn)行編譯:cd yourmenuARMRVCTPrograms2,2593win_32-pentiumcp armcc tcccp armcc armcppcp armcc tcpp除了 Python2.4.3必須單獨(dú)下載安裝之外,其他的工具都可以通過Cygwin打包下載。Cygwin默認(rèn)的Python版本是2.5,必須使用2.4.3的版本

10、來替換它,默認(rèn) Python會裝在Cygwin的user/local/bin目錄 下,back下/bin 目錄下的 python.exe, 將 usr /local/bin/python2.4.exe改名為 python.exe,并且將 c:cygwinusrlocalbin 力口入 PATH1、首先修改 M76XXTSNCJNLYM4725/HY11-VR356-8_4.7.25/AMSS/products/76XX/build/ms 下的然 rvct22.bat,將里面的環(huán)境變量修改成正確的值(RVC有口 Cygwin的安裝目錄), 并添力口變量 ARMTOOLS = RVCT2212、在 cmd.exe 下執(zhí)行 M76XXTSNCJNLYM4725/HY11-VR356-8_4.7.25/AMSS/products/76XX/build/ms/rvct22.bat3、修改 M76XXTSNCJNLYM4725/HY11-VR356-84.7.25/AMSS/products/76XX/build/ms/TSNCJNLYM.cmd 去除 BUILD_UNIXfi!USE_BUILD_NATIVELINUX_MODEMW 個編譯選項4、在cmd.exe下進(jìn),執(zhí)入行 M76XXTSNCJNLYM4725/HY11-

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論