精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

解析MTK手機軟件系統構建過程

移動開發
MTK手機軟件系統構建過程是本文要介紹的內容,主要是來了解并學習MTK手機軟件系統應用,首先來搭建一個MTK手機應用系統平臺,具體內容來看本文詳解。

MTK手機軟件系統構建過程是本文要介紹的內容,主要是來了解并學習MTK手機軟件系統應用,首先來搭建一個MTK手機應用系統平臺,具體內容來看本文詳解。

MTK手機軟件系統的構建使用了GNU的make,使得整個工程的構建可以自動進行,且可以靈活控制。整個構建過程由Make.bat、make2.pl、MoDIS.dsw、Gsm2.mak、Option.mak、_ .mak等文件控制。構建PC模擬版是通過msdev和VC的工程文件MoDIS.dsw來完成的。Gsm2.mak是構建ARM版的核心Makefile文件,整個構建過程由其控制,其他是一些啟動、選項配置、子過程的文件。其關系圖如下所示。

MTK手機軟件系統的根目錄下有一個批處理文件Make.bat,這個批處理文件啟動了整個工程的構建過程。在windows的命令行下,在該系統的根目錄下輸入命令make和相應的參數即可開始工程的構建,該批處理文件的使用方法如下所示。

  1. Usage:  
  2. make["customer"|"mt62xx"]"project""action"["modules"]  
  3. Description:  
  4. customer=mtk(Defaultcustomer)  
  5. =firefly17_demo(FIREFLY17_DEMOproject)  
  6. =[mt6217|mt6219|mt6226|mt6227|mt6228|mt6229](EVBonly)  
  7. =...  
  8. project=l1s(Layer1stand-alone)  
  9. =gsm(GSMonly)  
  10. =gprs(GPRSonly)  
  11. =basic(BasicFramework)  
  12. action=new(codegen,resgen,clean,update)(default)  
  13. =updateoru(scan,compile,link)  
  14. =remakeorr(compile,link)  
  15. =cleanorc(clean)  
  16. =resgen(resgen)  
  17. =c,u(cleanthenupdate)  
  18. =c,r(cleanthenremake)  
  19. =codegen(codegen)  
  20. =viewlog(openedittoviewbuildlog)  
  21. =emigen(emigen)  
  22. =emiclean(emiclean)  
  23. module(s)=modules'name(kal,l1,...)  
  24. =>OPTIONALwhenactionisoneof(cleancremakerupdateuc,rc,u) 

Example:

  1. makegsmnew(MT6205BEVBnew)  
  2. makegprscodegen(MT6218BEVBcodegen)  
  3. makemt6219gprsupdate(MT6219EVBupdate)  
  4. makefirefly17_demogprsnew  
  5. makemilan_demogprsc,uinitcustom  
  6. makemt6219gprsrinitcustomdrv 

其中較常用的action有new、update、remake、new_modis這幾個。

new是全新開始構建整個工程的ARM版,包括圖片、聲音、字符串等資源都要重做,依賴的其他動作最多,是最徹底也是耗時最長的一個動作,一般得到一個新的MTK發布版本后要做一次。

update是重新更新整個工程的ARM版,該動作會掃描工程中文件和庫的依賴關系,若依賴關系有變化會建立新的依賴關系,隨后根據新的依賴關系重新編譯鏈接有改動的部分,一般在增加或刪除一些驅動或應用的情況下需要用update。

remake是重新編譯整個工程的ARM版,該動作只是簡單的重新編譯鏈接有改動的部分,不檢查依賴關系,是耗時最短的一個動作,也是最常用的動作。

new_modis是全新構建整個工程的PC模擬版,其調用VC的編譯器和鏈接器得到一個可以在windows上運行的PC模擬版。MMI應用軟件工程師可以在沒有硬件板的情況下在PC上檢查和調試自己寫好的應用。

Make.bat實際上只起引導作用,其只有一行批處理語句perlmake2.pl%*,于是運行該批處理文件后控制權轉給了perl腳本make2.pl。在這個perl腳本中解析了用戶輸入的命令行參數,設置變量,準備make時需要的臨時配置文件,隨后根據生成的可運行映像是PC模擬版還是ARM版而分別調用不同的構建過程。

Pc模擬版的構建通過調用如下命令實現。

  1. system("$msdevMoDIS.dsw/MAKE\"$argu-Win32$modisDir\"  
  2. /OUT${MoDISLogDir}\\${argu}.log") 

在這里$msdev就是VC的msdev,通過VC的工程文件MoDIS.dsw和后面的參數進行具體的構建過程。熟悉VC工程的朋友應該比較清楚,因此就不再具體解釋了。之后將只以ARM版為主來講解整個工程的構建過程。

ARM版的構建通過調用如下命令實現。

  1. system("${makeCmd}-f${makeFolder}${myMF}-r-R  
  2. CUSTOMER=$customPROJECT=$project$action") 

在這里${makeCmd}是tools\make.exe,即GNU的make,${makeFolder}${myMF}是make\Gsm2.mak,$action是new、update、remake等。變量CUSTOMER和PROJECT分別是客戶名和項目名,在構建過程中將根據此兩個變量的值選定項目相關的配置文件,從而實現客戶化的定制。通過給make指定ARM版的核心Makefile文件Gsm2.mak,開始了ARM版的構建過程。

Gsm2.mak文件中包含了Option.mak這個配置用的Makefile文件,另外還包含了一些以.tmp和.bld為后綴的由perl腳本make2.pl生成的臨時配置文件。這些臨時配置文件主要是一些action如clean、remake等所需的變量設置,及客戶化和版本號等的一些信息。Gsm2.mak控制了new、update、remake等動作的過程。具體分別如下所示。

  1. new:cleanallcmmgenmmi_feature_checkasngencodegenasnregen\  
  2. operator_check_liteupdate  
  3. update:cleanlogcleanbinmcddll_updatecodegenresgencksysdrvremake  
  4. remake:cleanlogcleanbingenvernolibs$(BIN_FILE)done 

上面的構建過程的幾個步驟中,最重要的兩個步驟是libs、$(BIN_FILE)。libs調用ARM版的編譯器和連接器將各個模塊目錄下的C文件編譯鏈接為獨立的庫。$(BIN_FILE)這個步驟將各個模塊編譯鏈接得到的庫和mtk_lib目錄下的庫一起鏈接起來得到一個映像文件,然后使用ADS的工具fromelf將映像文件生成以變量BIN_FILE命名的二進制文件,該文件可以下載到硬件板上運行。

libs這個步驟如下所示。

  1. libs:cleanlibstartbuildlibs$(COMPLIBLIST) 

libs中真正進行編譯鏈接的步驟是$(COMPLIBLIST),要生成的庫由變量COMPLIBLIST列出,在ARM版中,變量COMPLIBLIST從變量COMPLIST得到。變量COMPLIST是在Option.mak及其包含的Makefile文件中賦值的。因有很多庫需要編譯鏈接,變量COMPLIBLIST展開后包含多個步驟,而這些步驟都是重復不變的,因此在定義步驟$(COMPLIBLIST)的構建過程時使用%.lib代替。%.lib這個步驟先清除了之前的一些依賴關系文件,將一些變量的設置寫入~compbld.tmp這個臨時文件中,然后給make指定Makefile文件comp.mak,完成庫的編譯和鏈接,如下所示。

  1. %.lib:  
  2. …  
  3. @if/I%OS%EQUWINDOWS_NT\  
  4. (if/I$(BM_NEW)EQUTRUE\  
  5. (tools\make.exe-fmake\comp.mak-k-r-R$(strip$(CMD_ARGU))COMPONENT=$*>$(strip$(COMPLOGDIR))\$*.log2>&1)  
  6. \  
  7. else\  
  8. (tools\make.exe-fmake\comp.mak-r-R$(strip$(CMD_ARGU))COMPONENT=$*>$(strip$(COMPLOGDIR))\$*.log2>&1)\  
  9. )\  
  10. else\  
  11. (if/I$(BM_NEW)EQUTRUE\  
  12. (tools\make.exe-fmake\comp.mak-k-r-R$(strip$(CMD_ARGU))COMPONENT=$*>$(strip$(COMPLOGDIR))\$*.log)\  
  13. else\  
  14. (tools\make.exe-fmake\comp.mak-r-R$(strip$(CMD_ARGU))COMPONENT=$*>$(strip$(COMPLOGDIR))\$*.log)\  

上面的命令語句中,參數-k是指有錯誤也要繼續編譯,-r和-R是指沒有GNUmake的默認規則和變量。COMPONENT=$*把當前要生成的庫賦給變量COMPONENT。要注意%.lib匹配了所有要生成的庫,但這個步驟一次只生成一個模塊的庫,這個步驟對所有匹配到的庫都會執行一次。

comp.mak這個Makefile文件控制了模塊的編譯鏈接過程。在這個文件中,首先將當前模塊要生成的庫(由變量COMPONENT傳入)設置給了變量TARGLIB。之后從.lis文件中得到SRC_LIST和CPPSRC_LIST兩個源文件列表,設定要編譯的C文件、C++文件、匯編文件等的列表,和要鏈接的中間目標文件的列表。將.inc、.def、.pth文件中的頭文件路徑、C文件路徑、編譯鏈接參數等賦值給相應的變量。將平臺相關(如6223、6225)的編譯參數加上,確定使用ARM編譯器還是thumb編譯器,是否支持ARM指令和thumb指令的interwork模式。最后進入庫的編譯鏈接過程。

庫的編譯鏈接由update_lib步驟完成,這個步驟直接依賴了$(TARGLIB)。目標$(TARGLIB)是由所有按照.c.obj、.s.obj、%.obj:%.cpp等規則編譯得到的中間目標文件鏈接得到的。其主要過程如下所示。

  1. $(TARGLIB):  
  2. ...  
  3. @ifexist$(FIXPATH)\$(CUS_MTK_LIB)\$(COMPONENT).lib\  
  4. (copy/z$(FIXPATH)\$(CUS_MTK_LIB)\$(COMPONENT).lib$(subst/,\,$(TARGLIB)))&\  
  5. ($(LIB)-r$(TARGLIB)$(COMPOBJS_DIR)/*.obj)\  
  6. else\  
  7. ($(LIB)-create$(TARGLIB)$(COMPOBJS_DIR)/*.obj)  
  8. ... 

Option.mak是整個工程構建過程中的總控配置文件,在這個文件中還包含了_ .mak和REL_CR_MMI_ .mak這兩個項目相關的配置文件,用戶自定義的配置文件USER_SPECIFIC.mak,另外還包含了一些臨時生成的配置文件。這些配置文件在一起設置了工程構建過程中用到的編譯器、鏈接器,庫和二進制的工具,設置了編譯鏈接時的參數,公共的頭文件路徑,設置了需要包含mtk_lib目錄中的哪些既有的庫,設置了需要生成的庫等一系列相關的設置,這些設置都由一些重要的變量保存。

 

 

 

小結:解析MTK手機軟件系統構建過程的內容介紹完了,希望通過學習MTK手機軟件系統的構建能對你有所幫助。

責任編輯:zhaolei 來源: 百度博客
相關推薦

2011-09-06 10:24:11

2011-09-05 17:07:45

MTK手機軟件

2011-09-05 18:49:50

MTK手機軟件系統

2009-11-26 10:45:41

Linux手機軟件趨勢分析

2009-12-21 16:57:25

2009-06-12 12:45:53

2023-06-08 07:37:42

Docker容器

2011-11-04 14:40:58

金山手機軟件

2009-11-12 09:17:07

手機軟件開發

2010-02-06 15:19:35

2009-03-15 09:50:44

諾基亞手機OS蘋果

2015-11-25 13:04:38

EMUI

2011-09-06 14:10:18

MTK系統時間

2011-08-30 16:32:41

MTK開發環境

2009-09-02 11:16:36

軟件商店聯通

2009-03-31 18:03:27

商店手機軟件WM

2009-06-11 15:25:41

2009-09-09 09:23:10

手機軟件商店

2014-03-17 09:52:33

點贊
收藏

51CTO技術棧公眾號

国产偷国产偷亚洲清高网站| 99热99精品| 日韩中文字幕免费视频| 日日夜夜精品视频免费观看 | 91蜜桃视频在线| 国产精品一区av| 国产情侣在线视频| 91一区二区三区四区| 精品嫩草影院久久| 欧美成人福利在线观看| 国产在线美女| 亚洲欧美在线高清| 欧美日韩天天操| www久久久com| 青青草精品视频| 97免费在线视频| 成人免费毛片xxx| 国产一区网站| 亚洲电影av在线| 在线观看日本www| 欧美精选视频一区二区| 亚洲图片欧美视频| 国产免费xxx| 搞黄视频在线观看| 26uuu精品一区二区三区四区在线| 91亚洲精品丁香在线观看| 亚洲av人无码激艳猛片服务器| 一区在线免费| 久久国产精品久久国产精品| 精品国产乱码久久久久久久久| 久久国产精品 国产精品| 99精品视频在线播放免费| 免费视频一区| 5278欧美一区二区三区| 国产一级做a爱免费视频| 性欧美欧美巨大69| 中文字幕免费国产精品| 97人妻精品一区二区免费| 麻豆一区二区| 亚洲国产精品久久精品怡红院| 妖精视频在线观看| 精品视频成人| 欧美人妇做爰xxxⅹ性高电影| www.天天射.com| 美女网站视频一区| 欧美伊人久久久久久午夜久久久久| 男人靠女人免费视频网站 | 欧美色图国产精品| 亚洲人在线观看| 亚洲熟妇一区二区三区| 亚洲精品亚洲人成在线观看| 日韩av中文字幕在线免费观看| 日本黄色免费观看| 欧美成人基地| 国产丝袜一区二区| 久久久久久久毛片| 成人毛片在线| 精品国产欧美一区二区五十路| 亚洲欧美另类日本| 一区二区三区四区在线观看国产日韩| 久久久99免费视频| 久久久久久久久艹| 亚洲免费成人| 国产97免费视| 一二三区中文字幕| 国产精品一区在线观看乱码| 亚洲伊人久久综合| 刘亦菲久久免费一区二区| 成人亚洲精品久久久久软件| 精品视频免费观看| 国产小视频免费在线网址| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品99久久久久| 91在线网站视频| 亚洲成人第一区| 91蝌蚪porny成人天涯| 午夜精品电影在线观看| 黄色在线播放网站| 亚洲一区二区精品视频| 欧美v在线观看| 日韩毛片免费看| 精品国产乱码久久久久久老虎 | 噜噜噜久久,亚洲精品国产品| 99久久综合国产精品| 日韩欧美一区二区三区久久婷婷| 一级毛片视频在线观看| 亚洲1区2区3区4区| 爱情岛论坛成人| 日本伊人久久| 亚洲日本欧美中文幕| 午夜精品一区二区三级视频| 亚洲福利国产| 国产免费一区视频观看免费| 成人精品在线播放| 亚洲国产高清aⅴ视频| 超碰10000| 蜜臀国产一区| 日韩一区二区三区视频在线观看| 巨胸大乳www视频免费观看| 天天精品视频| 国产成人精品网站| 亚洲精品.www| 国产精品久久久久久久浪潮网站| www.射射射| 日韩国产大片| 亚洲人午夜精品| 日本亚洲欧美在线| 国模无码大尺度一区二区三区| 久久99国产精品99久久| 91精品久久| 在线看日韩精品电影| 精品无码av一区二区三区| 日韩欧美精品综合| 国产成人精品国内自产拍免费看 | 成人av免费在线播放| 最近中文字幕免费mv| 日韩电影免费观| 亚洲毛片av| 亚洲精品国产免费| 黑人巨大精品一区二区在线| 奇米一区二区三区| 欧美二区在线| 色www永久免费视频首页在线 | 欧美在线视频在线播放完整版免费观看| 亚洲天堂视频在线| 久久久久国产精品人| 青青青免费在线| 深夜福利一区| 不卡av在线播放| 97精品人妻一区二区三区香蕉| 国产三级三级三级精品8ⅰ区| 大陆极品少妇内射aaaaa| 成人福利一区| 欧美大片在线免费观看| 国产农村妇女毛片精品| 国产精品福利一区| 国产 porn| 欧美日韩高清| 国产精品九九九| 国产在线免费观看| 在线精品视频小说1| 日韩人妻无码一区二区三区| 模特精品在线| 久久综合婷婷综合| 朝桐光一区二区| 亚洲一级一级97网| 亚洲午夜在线播放| 国产精品久久国产精麻豆99网站| 在线观看免费不卡av| 国产高清一区| 亚洲va欧美va在线观看| 婷婷在线播放| 亚洲国产97在线精品一区| 日韩av男人天堂| 久久一日本道色综合| 成人精品视频一区二区| 日韩欧美精品一区| 91成人免费在线观看| av片在线观看| 精品日韩一区二区三区免费视频| 国产无遮挡又黄又爽| 91麻豆国产自产在线观看| 日韩精品一区中文字幕| 日韩精品久久久久久久电影99爱| 国产日本欧美视频| 欧美午夜大胆人体| 亚洲国产精品久久久久| 亚洲男人天堂网址| 国产精品久久久久四虎| 欧美日韩中文字幕一区二区| 91超薄肉色丝袜交足高跟凉鞋| 一本综合精品| 日本一区不卡| 日本一区二区三区视频在线看 | 日韩第一页在线观看| 狂野欧美xxxx韩国少妇| 97久久久久久| 欧美a在线看| 欧美成人伊人久久综合网| 国产一级精品视频| 国产精品三级在线观看| av电影中文字幕| 久久久久久一区二区| 波多野结衣激情| 视频福利一区| 91精品在线一区| 麻豆mv在线观看| 色爱av美腿丝袜综合粉嫩av| 亚洲精品久久久久avwww潮水| 色综合久久中文字幕综合网 | 成人高潮成人免费观看| 日韩欧美国产综合| 欧美性猛交xxxx乱大交hd| 伊人色综合久久天天人手人婷| 亚洲午夜福利在线观看| 国产成人福利片| 激情 小说 亚洲 图片: 伦| 欧美日韩一区自拍| 欧美国产一二三区| 视频一区国产| 国产精品亚洲精品| 中老年在线免费视频| 欧美另类第一页| av网站在线播放| 日韩成人中文字幕在线观看| 国产精品无码在线播放| 欧美性xxxx极品hd满灌| 久久精品www| 国产精品网站在线观看| 亚洲中文字幕无码av| 国产一区二区久久| 国产又黄又猛又粗又爽的视频| 99视频一区| 日本成人在线不卡| 希岛爱理一区二区三区| 热舞福利精品大尺度视频| 国内毛片久久| 成人av网站观看| 亚洲ww精品| 国产精品久久久久av免费| 校园春色亚洲| 国模精品视频一区二区三区| av免费看在线| 久久久久av| 成人激情视频在线播放| 精品亚洲美女网站| 欧美中文在线观看| 欧美日韩国产观看视频| 韩国三级日本三级少妇99| 在线观看h网| 色综合久久88| 中文字幕在线观看播放| 欧美成人小视频| 超碰免费在线播放| 欧美成年人视频| 成人免费网址| 欧美精品在线第一页| www.欧美日本韩国| 九九视频直播综合网| av在线free| 欧美理论片在线观看| 欧美videossex| 欧美黑人狂野猛交老妇| 欧美aaaxxxx做受视频| 欧美精品激情在线| 国产蜜臀av在线播放| 隔壁老王国产在线精品| 中文字幕在线观看日本| 最新日韩中文字幕| 蜜桃视频网站在线| 欧美成人免费视频| 欧美hdxxxx| 5252色成人免费视频| 欧美色网在线| 国产欧美日韩精品丝袜高跟鞋| 欧美视频第一| 7777精品伊久久久大香线蕉语言| 日本一区二区三区视频在线看 | 三上悠亚av一区二区三区| 美女爽到高潮91| 国产传媒免费观看| 高清av一区二区| 亚洲av无码一区二区三区网址 | 欧美人与禽zozzo禽性配| 亚洲国产成人高清精品| 日韩免费视频一区二区视频在线观看| 色综合久久九月婷婷色综合| 中文字幕在线视频第一页| 678五月天丁香亚洲综合网| 亚洲精品国偷拍自产在线观看蜜桃 | 成人综合久久网| 国产91丝袜在线观看| 在线观看福利片| 最新国产成人在线观看| 国产一级中文字幕| 在线观看日韩一区| 不卡的日韩av| 亚洲女人被黑人巨大进入| 日本在线免费播放| 91国产中文字幕| 亚洲成人va| 国产精品午夜av在线| 国产精品毛片一区视频播| 精品一区二区三区在线观看国产| 国产5g成人5g天天爽| 91视频一区二区| 国产精品嫩草影院俄罗斯| 欧美日韩美女在线| 国产精品高潮呻吟AV无码| 日韩国产中文字幕| 超碰在线网址| 国产福利成人在线| 成人福利一区| 中文字幕一区二区三区四区五区| 99视频一区| 九九九久久久久久久| 国产日本欧美一区二区| 日韩av片在线播放| 欧美电影一区二区三区| 五月婷中文字幕| 九九热精品在线| 国产第一亚洲| 久久久久久草| 亚洲欧洲另类| 日韩av加勒比| 国产精品久久一卡二卡| 久久久精品免费看| 日韩视频国产视频| 1pondo在线播放免费| 日韩美女在线播放| 日韩高清成人在线| 每日在线观看av| 国产一区二区三区视频在线播放| 少妇无套高潮一二三区| 午夜精品一区二区三区电影天堂 | 99久久久久免费精品国产| 熟女少妇a性色生活片毛片| 色94色欧美sute亚洲线路一久| 人妻少妇精品无码专区久久| 久久亚洲电影天堂| 992tv国产精品成人影院| 蜜桃精品久久久久久久免费影院 | 91久久奴性调教| 亚洲av成人无码久久精品老人| 欧美激情亚洲另类| 精品中文字幕一区二区三区| 亚洲一区二区三区欧美| 视频一区二区三区在线| 国产ts在线播放| 欧美日韩亚洲精品内裤| 婷婷亚洲一区二区三区| 91精品国产高清久久久久久91| 风间由美性色一区二区三区四区| 免费的一级黄色片| 国产成人aaa| 久久久久久天堂| 精品国产乱码久久久久久蜜臀| 国产在线xxx| 动漫3d精品一区二区三区| 国语自产精品视频在线看8查询8| 色哟哟在线观看视频| 一区二区三区在线观看欧美| 国产成人久久精品77777综合 | 久久国产影院| 成人黄色一区二区| 欧美激情在线一区二区三区| 无码无套少妇毛多18pxxxx| 国产亚洲欧洲高清一区| 97成人超碰| 波多野结衣三级在线| 国产精品伊人色| 国产成年人免费视频| 精品亚洲精品福利线在观看| 三上悠亚国产精品一区二区三区| 日本视频一区在线观看| 老司机一区二区| 国产一区二区三区在线视频观看| 日韩女优制服丝袜电影| caoporn视频在线观看| 欧美日本亚洲| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩成人毛片视频| 亚洲成色777777女色窝| 亚洲精品综合在线| 欧美一区三区二区在线观看| 欧美日韩国产成人精品| 在线观看免费视频国产| 岛国视频午夜一区免费在线观看| 91国视频在线| 精品国产一区二区三区小蝌蚪| 毛葺葺老太做受视频| 久久久电影一区二区三区| 伊人精品一区二区三区| 欧美精品在线视频观看| 欧美日韩一本| 国产成人黄色网址| 一区二区久久久| 欧美大片aaa| 91久久精品国产| 性色一区二区三区| 亚洲精品天堂网| 亚洲精品一区二区三区福利| 欧美日韩精品免费观看视完整| 中文字幕一区二区三区四区五区人 | 欧美久久香蕉| 夜夜夜夜夜夜操| 精品久久久久久久久久久久| porn亚洲| 国产一区二区三区黄| 美女视频第一区二区三区免费观看网站| 久久r这里只有精品| 国产一区二区三区毛片| 日韩区一区二| 色婷婷狠狠18| 亚州成人在线电影| 激情成人四房播| 日本黄网免费一区二区精品| 国产大陆a不卡| 国产精品成人久久久| 97在线观看视频|