MTK 編譯命令詳解

1、new
      功能:全新開始構建整個工程的ARM版,包括圖片、聲音、字符串等資源都要重做。在構建工程過程中,清除所有的目標文件,庫文件,日誌文件等。New指令還會自動創建必要的目錄、移除臨時文件和中間腳本、更新日誌文件。
     過程簡要說明:new->cleanall->sysgen->ckscatter->mmi_feature_check->asngen->codegen->asnregen->operator_check_lit->$(BTLD_BIN_FILE)->update。
     依賴指令:new依賴的其他指令最多,其中包括cleanall,sysgen,ckscatter,mmi_feature_check,asngen,codegen,asnregen,operator_check_lite,update.
     用途:new指令是最徹底也是耗時最長的一個動作,一般得到一個新的MTK發佈版本後由項目負責人要做一次。
     使用示例:C: BIRD25_GEMINI_07BRelease>make BIRD25_GEMINI_07B gprs new。
2、update
      功能:update是重新更新整個工程的ARM版,該動作會掃描工程中文件和庫的依賴關係,若依賴關係有變化會建立新的依賴關係,隨後根據新的依賴關係重新編譯鏈接有改動的部分。Update指令不依賴cleanall指令,所以它不會刪除目標文件和庫文件,也不會去更新日誌文件和創建目標目錄,這一點和remake相像,這也是爲什麼執行時間比new短的原因。
      過程簡要說明:update->cleanlog->cleanbin->mcddll_update->codegen->resgen->cksydrv->remake。
      依賴指令:cleanlog,cleanbin,mcddll_updata,codegen,resgen,cksydrv,remake。
      用途:update是耗時較長的一個指令,一般在增加或刪除一些驅動或應用情況下使用。
      使用示例:C: BIRD25_GEMINI_07BRelease>make BIRD25_GEMINI_07B gprs update。
3、remake
      功能: remake是重新編譯整個工程的ARM版,該動作只是簡單的重新編譯鏈接有改動的部分。它不檢查依賴關係.不掃描資源,只掃描代碼的改變,有改變的重編,資源和無改變的代碼不編。
      過程簡要說明:remake->mcp_check->cleanlog->cleanbin->genverno->libs->$(BTLD_BIN_FIKE)->cmmgen->done。
      依賴指令:mcp_check,cleanlog,cleanbin,genverno,libs,$(BIN_FIKE),cmmgen,done。其中最重要的兩個指令是libs,$(BIN_FIKE)。Libs調用編譯器和連接器將各個模塊目錄下的C文件編譯連接爲獨立的庫。$(BIN_FIKE)是將各個模塊編譯連接的庫和mtk_lib目錄下的庫一起連接起來得到一個映像文件,然後使用ADS的工具fromelf將映像文件生成以變量BIN_FILE命名的二進制文件,該文件可以下載到硬件板上運行。
      用途:remake是耗時最短的一個動作,也是最常用的動作。
      使用示例:C: BIRD25_GEMINI_07BRelease>make BIRD25_GEMINI_07B gprs remake。
4、clean
      功能:清除所有的目標文件,臨時文件,庫文件,可執行文件,更新日誌文件。還可以用於某個模塊相關的清除工作。
      過程簡要說明:check build root、target folder、comp、lib、comp log folder->clean bin folder、elf、lis、htm、log files、tst database files、obj,lib files。
      依賴指令:cleanlog,cleanbin,cleanmod,cleancodegen等。
      用途:作爲其它命令所依賴的指令,還有就是清除工程或者指定模塊對象的類庫。
      使用示例:C: BIRD25_GEMINI_07BRelease>make BIRD25_GEMINI_07B gprs clean,C: BIRD25_GEMINI_07BRelease>make BIRD25_GEMINI_07B gprs clean Init。
5、其他命令介紹
      new_modis:是全新構建整個工程的PC模擬版,其調用VC的編譯器和鏈接器得到一個可以在windows上運行的PC模擬版。MMI應用軟件工程師可以在沒有硬件板的情況下在PC上檢查和調試自己寫好的應用。
      codegen_modis:產生modis需要的trace文件的datebase。
      gen_modis:產生vc工程文件。
      remake_modis:重新編譯整個工程的PC版。
      Codegen:創建TST數據庫。它依賴的指令有:cleancodegen,asngen,[umts_gen],codegen,asnregen,cleanbin,mcddll_update,done。
      Cleancodegen:刪除codegen.lis。
      Resgen:生成MMI資源。它依賴的指令有:code_generate,cleancodegen,asngen,codegen,asnregen,cleanbin,mcddll_update,done。
      Cmmgen:生成CMM文件。
      Sysgen:生成內存映射文件,並放在CUSTOMER文件夾裏面。
      Emigen:生成flash_opt.h,custom_EMI.h,custom_EMI.c和custom_switchclock.c文件。
      Emiclean:清除EMI設置。
      Mmi_feature_check:根據MMI_features.h和MMI_features_switch.h中宏定義的不同來產生info.log文件。
      Operator_check:檢查customer的宏是否被修改,如果修改產生相應log文件。
      Fota:生成FOTA二進制文件。
      Bootloader:生成bootloader二進制文件。
      Ckscatter:檢查scatter文件
      Mmi_obj_check:檢查運行時間值,e.g,聯合體元素的大小等。
      Med_mem_check:檢查media memory。該指令依賴gencustominfo gen_infolog nvram_auto_gen。
      Dummy_data_check:檢查虛擬數據。
      Viewlog:查看日誌文件。
      Cksysdrv:檢查系統驅動是否爲滿。
      Genverno:生成verno.c/h。
      Mcddll_update:生成和更新tst mcddll.dll文件。
      Gen_bl_verno:生成bootloader版本號。
      Del_fota:刪除fota二進制文件和elf,lis,sym,htm.*.log文件。
發佈了55 篇原創文章 · 獲贊 4 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章