版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、關(guān)于在美拓的簡(jiǎn)短的總結(jié)與體會(huì)關(guān)于在美拓的簡(jiǎn)短的總結(jié)與體會(huì)概要:這僅僅是個(gè)人的一點(diǎn)心得體會(huì)與總結(jié),本登不得大雅之堂,然而我作為一個(gè)對(duì)于手機(jī)開(kāi)發(fā)完全的零起點(diǎn)對(duì)于其中的艱難與痛苦有著切膚的體會(huì),這一切促使我不敢身藏淺陋將一些零星瑣碎公之于眾,即作為自己在美拓的簡(jiǎn)短人生經(jīng)歷的一個(gè)總結(jié),如果能給后來(lái)者提供一點(diǎn)點(diǎn)地借鑒也心滿意足了。1關(guān)于編譯環(huán)境的認(rèn)識(shí)體會(huì)首先面對(duì)程序員的就是相對(duì)復(fù)雜的編譯環(huán)境及其繁瑣的配置工作。高通平臺(tái)分為仿真和實(shí)際的arm編譯兩
2、個(gè)截然不同的編譯環(huán)境,其中有些相同有些不兼容。a)仿真編譯仿真完全使用vc6的編譯機(jī)制,高通的例子是把一個(gè)個(gè)小applet編譯成為dll動(dòng)態(tài)庫(kù),我們的工程應(yīng)該是把brew的模擬器作為靜態(tài)庫(kù)鏈接到meta的工程里面,模擬器的配置在win32binbrew_emu.dat中,在其中可以指定外觀即devicepack配置文件,以及applet運(yùn)行的文件系統(tǒng)路徑,及其相應(yīng)的mif文件所在路徑。PhoneFile=H:CDMAL200Win32D
3、evicePack1L200DevicePack1.dpkAppletDir=H:CDMAL600newResourceFileSystemMIFDir=H:CDMAL600newResourceFileSystemVc6能夠自動(dòng)解析源文件的相應(yīng)的依賴關(guān)系省卻了程序員寫makefile的痛苦,但是如何創(chuàng)建vc6的工程文件是一個(gè)很繁瑣的工作。美拓的代碼統(tǒng)統(tǒng)使用cfg文件管理機(jī)制可以很方便地依靠gendsp.cmd工具加入工程組,也就是說(shuō)每
4、個(gè)源代碼模塊都定義了一個(gè).cfg文件,里面列明了模塊的頭文件.h,源文件.c.cpp,以及鏈接庫(kù).lib.a。[IncludeFiles]$(METAMMI)appsJavajblendia_jvmincludesettingsMeta_Java_Settings.h[SourceFiles]$(METAMMI)appsJavajblendia_jvmptamsuiMeta_AmsUI.c[LinkFiles]!ifeq($(META_
5、TARGET)Arm)$(METAMMI)3PartsJBlendlibraryajscajsc_arm_ads.a!else$(METAMMI)3PartsJBlendlibraryajscajsc_win32_msvc.lib以上就是.cfg文件的格式,于是,運(yùn)行win32build目錄下的gendsp.cmd就會(huì)運(yùn)行一個(gè)perl的腳本gencfgmin.pl來(lái)讀取metammi.cfg文件,這個(gè)文件列表了所有工程要包含的meta的
6、模塊cfg文件,然后通過(guò)這些cfg文件列明的.h.c.lib文件就被加入了工程,也就是加入了simulat.dsp的vc6的工程文件。但是代碼里面的include頭文件是一個(gè)很麻煩的事情,首先,有些工程人員喜歡把其中的頭文件名前面加上相對(duì)的路徑,但是這個(gè)對(duì)于編譯確實(shí)很麻煩的事情,因?yàn)榫幾g器尋找這些路徑是從一個(gè)運(yùn)行的相對(duì)路徑開(kāi)始,然后按照編譯設(shè)定的搜索路徑和系統(tǒng)環(huán)境變量比如include項(xiàng)下的路徑搜索,一旦工程文件位置變動(dòng)就有可能搜索不到
7、,同時(shí)過(guò)多的設(shè)定搜索路徑會(huì)減慢編譯速度,因?yàn)榫幾g器會(huì)不停在各個(gè)路徑下搜索,錯(cuò)誤即便你的ads12.bat已經(jīng)正確運(yùn)行了很有可能是因?yàn)槟銢](méi)有把a(bǔ)s.exe的文件屬性加上system,比如attribsas.exeb)arm編譯arm編譯和仿真編譯有著巨大的差別,要復(fù)雜的多。首先要從編譯資源做起。資源包括圖片,文字存放在resourcemeta下的imagestringtheme目錄下,給每個(gè)資源編寫資源id是一件很繁瑣的事情,這里也是依靠
8、了工具運(yùn)行ImageResConv.bat把image下的所有圖片都編篡相應(yīng)的資源id,比如一個(gè)圖片文件input_123.png最后就在MetaImg.brh里面變成了#defineIDI_PNG_INPUT_1238145命名的原則就是IDI_TYPE_FILENAME其中type應(yīng)該是文件類型即擴(kuò)展名,8145是程序順序產(chǎn)生無(wú)關(guān)緊要。這樣程序員在代碼中按照這個(gè)命名原則就省卻了更新命名資源id的煩惱了。這個(gè)metaImg.brh最終
9、被放在sourcemetaresproject目錄下,其中project未當(dāng)前的項(xiàng)目代號(hào),這個(gè)必須要在build_res.bat里面設(shè)定了比如@setPROJECT=0803_L201。最終這個(gè)metaimg.brh成為metammi.cfg的一欄。文字和圖片稍有不同,就是把中文字串資源“T_Yes是”和英文資源“T_YesYes”進(jìn)行統(tǒng)一編號(hào)為metaStr.brh里的“#defineT_Yes3”而相應(yīng)的實(shí)際資源文件則是#defin
10、eCHINESE_RES_FILE“Chinese.bar“變成了高通的資源文件。這一切的編譯工作都是在一個(gè)resourcemetaBuild_Res.bat下完成的。需要提醒注意的是,image路徑下任何文件都回被搜羅當(dāng)作資源圖片文件,因此如果使用svn需要?jiǎng)h除svn文件或者把圖片拷貝出來(lái)編譯。編譯完資源后就可以開(kāi)始編譯了,但是首先要做的還是設(shè)置好ads12.bat,這個(gè)的重要性前面已經(jīng)講過(guò)了,每個(gè)人都有可能不同要根據(jù)自己的安裝路徑來(lái)
11、設(shè)置。運(yùn)行armprj_code.bat其中prj_code代表當(dāng)前的項(xiàng)目代號(hào),因此相應(yīng)的在sourcequalcommbuildms目錄下你要有相同項(xiàng)目代號(hào)的prj_code.cmdprj_code.mak,cust_prj_code.h,同時(shí)在sourcemetaresprj_code下要有相應(yīng)的資源文件以便鏈接。正是編譯同樣使用meta的收集cfg的方式生成實(shí)際的makefile,高通的編譯器是支持c編譯的,比如tcpp.exe就
12、是c編譯器,在dmss_rules.min里面有perl腳本根據(jù)代碼文件擴(kuò)展名自動(dòng)選擇編譯器的規(guī)則,因此你也完全可以寫c代碼只要你使用.cpp文件擴(kuò)展名。高通使用min文件來(lái)定義每個(gè)小模塊包含的源文件,其中還包含了.s文件,這個(gè)是一個(gè)對(duì)大多數(shù)pc程序員的巨大的surprise,這里要從程序運(yùn)行談起。因?yàn)閜c的程序的運(yùn)行地址一般都是relocable的,也就是說(shuō)運(yùn)行起在哪里是不需要關(guān)心的,是由操作系統(tǒng)的loader加載同時(shí)修改代碼的偏移地
13、址完成在任意物理地址運(yùn)行的,但是手機(jī)程序的靜態(tài)加載模塊地址卻是定死的,當(dāng)然各個(gè)模塊的地址可以依靠.scl的文件來(lái)調(diào)整,這個(gè)是linker的一個(gè)配置文件,它規(guī)定了各個(gè)模塊的boot內(nèi)存地址的相對(duì)關(guān)系,比如以sourcequalcommbuildmsq60x0a_rom.scl為例,BB_RAM0x0dloadarm.o(RW)dloadusb.o(RW)addedbynickfjvmAddliaohs..cnfJAVAJBLEND_RAM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡(jiǎn)短唯美英文美句
- 關(guān)于生活部年度的簡(jiǎn)短工作總結(jié)范文
- 基于Android平臺(tái)的美拓暴風(fēng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 2020年關(guān)于軍訓(xùn)的心得體會(huì)簡(jiǎn)短范文5篇
- 2020年關(guān)于軍訓(xùn)的心得體會(huì)簡(jiǎn)短范文5篇
- 軍訓(xùn)后的心得體會(huì)簡(jiǎn)短
- 簡(jiǎn)短有關(guān)于學(xué)習(xí)工匠精神個(gè)人心得體會(huì)匯編
- 素拓心得體會(huì)
- 關(guān)于在美期間健康狀況的保證書
- 試用期簡(jiǎn)短的工作總結(jié)
- 個(gè)人培訓(xùn)總結(jié)簡(jiǎn)短
- 師德師風(fēng)總結(jié)簡(jiǎn)短
- 師德師風(fēng)總結(jié)簡(jiǎn)短
- 試用期簡(jiǎn)短的工作總結(jié)
- 關(guān)于碧桂園十里金灘拓客和接待客戶經(jīng)驗(yàn)的總結(jié)
- 關(guān)于文化自信在基層實(shí)踐價(jià)值的體會(huì)認(rèn)識(shí)
- 2018年簡(jiǎn)短的黨員個(gè)人總結(jié)范文
- 創(chuàng)先爭(zhēng)優(yōu)心得體會(huì)簡(jiǎn)短
- 黨員個(gè)人總結(jié)簡(jiǎn)短
- 黨員個(gè)人總結(jié)簡(jiǎn)短
評(píng)論
0/150
提交評(píng)論