詳解MTK手機軟件開發(fā)過程
MTK手機軟件過程是本文要介紹的內(nèi)容,主要是來了解并學習MTK手機軟件的應用,本文很詳細的講解了MTK手機軟件開發(fā)的詳細過程,具體內(nèi)容來看本文。
編譯工具和輔助工具:
- ADS1.2
- ADS12_update_842.exe
- MSYS-1.0.10.exe
- MinGW-3.1.0-1.exe
- ImageMagick-6.2.5-5-Q16-windows-dll.exe
- 7z313.exe
MTK手機軟件編譯過程
編譯工具和輔助工具:
- ADS1.2
- ADS12_update_842.exe
- MSYS-1.0.10.exe
- MinGW-3.1.0-1.exe
- ImageMagick-6.2.5-5-Q16-windows-dll.exe
- 7z313.exe
開始編譯:
切換到項目根目錄,然后在命令行下面執(zhí)行命令:
- makecustom=projgprsnew
其中,命令可以為clean,update,remake
目標文件:
生成的目標文件為.bin文件,位于MTK\build\proj目錄下面,build目錄為生成的一個目錄。
Log文件:
Log文件同.bin文件一樣,也是位于build目錄下,如果編譯出錯,可以在命令行中看到出錯的模塊,然后到build目錄下找對應的log文件。
仿真環(huán)境:
工程文件PixtelMMI.dsw位于目錄MTK\plutommi\mmi下面,由此可進入仿真環(huán)境。
燒寫程序:
工具Flash_tool.exe可燒寫程序。
該工具的主要設置是COM口和目標文件位置。
Downloadargent和scatterfile用自帶的就可以了,選中這兩項后,會出現(xiàn)ROM的選擇項,點擊后可選擇.bin文件。如下圖:
設置好上面的參數(shù)后,連接上手機,將手機斷電,然后按開機鍵就可以燒寫程序了。
Trace工具
在手機上往往要做一些trace,這就要用到trace工具---Catcher.exe。
手機上打trace接口為kal_prompt_trace,如同agere平臺的GSMprinf.
使用Catcher.exe,
要先要設置DataBase,這個文件是在編譯的時候生成的,是個沒有擴展名的二進制文件,該文件位于\MTK\tst\database_classb,例如,BPLGU..。
在Catcher.exe中,設置DataBase的方式是configàsetdatabasepath
其次,要設置模式為logging,這樣才能進行下面的設置。
該設置位于controlàmodeàlogging
第三,要設置好COM口。
第四,打開連接開關,表示Catcher.exe處于待命狀態(tài)。
第五,設置filter。這個可以過濾一些自己不需要的log。有時半天不出現(xiàn)log,這時候重新選擇一下filter一般就會解決問題。
Filter設置路徑為controlàsetfilter
Catcher.exe使用的連接線給燒寫程序用的線是同一條。
保存log:
在log區(qū)域選中想要保存的log(可用shift+鼠標),鼠標右鍵選saveas…
有時為了方便測試,會設置trace默認關閉,需要的時候可以打開。
該設置在工程模式下。
設備àsetUARTàTSTConfig,設置合適的UART口。比如,UART1是可以trace的。
編譯出錯:
有時編譯會出現(xiàn)莫名其妙的錯誤,比如一剛剛可以編譯通過,現(xiàn)在卻不行,.以上為項目開發(fā)的基本環(huán)境和基本過程,接下來的內(nèi)容,則是具體的開發(fā)細節(jié)
添加文件:
開發(fā)過程中,少不了加減文件,刪除文件實際上是添加文件的相反過程,因此略過。
MTK設置了很多l(xiāng)st和pth文件供用戶添加文件,這些都在make文件夾下。用戶可以自己添加模塊,也可利用原有的lst和pth文件添加。以下以添加在MTK\make\plutommi為例。
添加頭文件路徑:
- plutommi.inc
添加本模塊路徑:
- plutommi.pth
添加源文件路徑:
- plutommi.lis
添加完畢,這些文件就可參與編譯了。
#p#
添加開關:
開關真是個好東西。依靠它,可以將沒有價值的功能瞬間屏蔽,又可以將我們需要但又擱置的功能瞬間啟用。能者上,不能者下,多么類似于社會法則。
添加開關在make文件夾下面的.mak文件里面。
注意事項:
有人喜歡模仿MTK原做法,在.mak文件里面使用一個開關管住另外一個開關。那么兩個開關不要同名,否則開關起不了關閉的作用。
添加string資源:
1、GlobalDefs.h中增加ID
2、population.c中將ID和string關聯(lián)
3、plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中增加ID和各種語言的文本,有了以上3個步驟,即可使用該文本資源了。
編譯后,在plutommi\Customer\CustResource下面會生成新的CustStrMap.c和CustStrRes.c,這兩個文件中就包含了新增的string資源
添加圖片:
1、GlobalDefs.h中增加ID
2、population.c中將ID和string關聯(lián)
3、增加圖片到解壓后的包里,增加完畢,應打包。plutommi\Customer\Images\PLUTO176X220
里面的文件夾是生成的,可以在cc上看到為private。
4、添加進去后,要打包,如果僅添加在文件夾里面會被清除。
如果沒有找到圖片文件,手機顯示的時候是一個紅色的*
添加圖片時,注意路徑用4杠
在NVRam中增加成員:
需要增加ID,指出每塊大小,以及總的塊數(shù)和缺省值。
每塊大小最好為偶數(shù)。
修改下面的文件:
- Nvram_user_defs.h:ID,大小,個數(shù)
- NVRAMEnum.h
- Nvram_user_config.c
- custom_nvram_editor_data_item.h
是在Dos環(huán)境下編譯,可以做成一個批處理文件,更方便。
MTK編譯分資源的編譯和代碼的編譯:
1、資源的編譯:
(1)需要編譯資源的情況:
在如下的修改情況下,需要重編譯資源:
a、修改了..plutommi\Customer\CustResource\PLUTO_MMI\目錄下的文件如字庫文件(FontRes.c、L_**.h文件)、MMI配置文件(MMI_featuresPLUTO.h)、字符串資源文件(Ref_list.txt)等;
b、修改了..plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目錄下的文件,這個目錄下的文件都是Res_*.*文件,是各個AP或模塊的資源配置文件,包含菜單、圖片、字符串資源的配置;
注意:Cust*.*文件是資源編譯生成的,不能手動修改。
(2)編譯方法:
進入..\plutommi\Customer目錄,執(zhí)行remakeResource.bat批處理文件。
編譯成功會生成一些Cust*.*文件在\plutommi\Customer\CustResource目錄下,編譯代碼時再編譯這些文件;
編譯失敗到build目錄下查看log文件àres_gen.txt,可看到出錯信息。
(3)當我們改變了資源,想在PC模擬上看到修改效果時,也需要先執(zhí)行如上的資源編譯命令,
再在VC環(huán)境下build一下資源,就可以看到效果了。
2、代碼的編譯:
有如下的編譯命令:
- makecustom=xxxgprsnew
- makecustom=xxxgprsupdate
- makecustom=xxxgprsremake
- makecustom=xxxgprsclean
這些編譯命令可以做成批處理文件build.bat,我們輸入相應的選項就可。
編譯成功后,在build目錄下生成所有的.obj,編譯信息log文件、下載.bin文件等;
編譯失敗時,到build目錄下查看相應的log文件,可看到出錯信息。
幾個關鍵字解釋如下:
(1)xxx,Project名,對應make目錄下的xxx_GPRS.mak文件;
(2)最后一個關鍵字:
a、new:
不管資源、代碼是否有改變,全部重編;
b、update:
掃描資源、代碼的改變,有改變的重編,無改變的不編;
c、remake:
不掃描資源,只掃描代碼的改變,有改變的重編,資源和無改變的代碼不編;
d、clean:
清除build目錄下的所有內(nèi)容,保留目錄結(jié)構。
3、MTK平臺軟件架構
小結(jié):詳解MTK手機軟件開發(fā)過程的內(nèi)容介紹完了,希望通過本文的學習能對你有所幫助!