詳解MTK手機(jī)軟件系統(tǒng)工程目錄結(jié)構(gòu)
MTK手機(jī)軟件系統(tǒng)工程目錄結(jié)構(gòu)是本文要介紹的內(nèi)容,主要是來(lái)了解MTK中手機(jī)軟件的應(yīng)用,具體內(nèi)容來(lái)看本文詳解。
Fast_DL是開(kāi)發(fā)時(shí)下載二進(jìn)制映像和資源等的相關(guān)文件的目錄。ROM是固化在ROM(可能是Flash的只讀區(qū))中的相關(guān)代碼和頭文件的目錄,在給客戶(hù)的發(fā)布版中大都只有一些導(dǎo)出函數(shù)的頭文件,其中似乎還有一個(gè)跳轉(zhuǎn)表的東西ROMSA_FuncTable。
kal是上面所說(shuō)的內(nèi)核抽象層的相關(guān)文件的目錄。nvram是存取NV中的內(nèi)容的相關(guān)代碼的目錄。nucleus是nucleus實(shí)時(shí)操作系統(tǒng)的目錄,在給客戶(hù)的發(fā)布版中只有頭文件。drv是驅(qū)動(dòng)相關(guān)的代碼的目錄。fs是文件系統(tǒng)相關(guān)的目錄,好像只支持fat格式的。tools是工程相關(guān)工具的目錄,包括MinGW。interface是系統(tǒng)各層的接口的目錄,還包含重要模塊的接口,如bluetooth、WIFI。config是一些系統(tǒng)和任務(wù)(task)相關(guān)頭文件的目錄,感覺(jué)不像是配置相關(guān)的目錄。inc是中斷控制和寄存器地址相關(guān)頭文件的目錄。
modis是PC模擬版的相關(guān)目錄,包括了虛擬的GSM網(wǎng)絡(luò)、SIM卡等,以及模擬器需要的字符串、圖片等資源,還有PC模擬版的庫(kù)、VC的相關(guān)工程文件。
mmi是一個(gè)缺省的空的MMI應(yīng)用的目錄,其中只是創(chuàng)建了一個(gè)什么也不干的MMI任務(wù)(線程),處理下層發(fā)送上來(lái)的消息。plutommi是pluto組織(也可能是原本的mmi應(yīng)用的代號(hào))所寫(xiě)的整套MMI應(yīng)用所在的目錄,而實(shí)際上也就是我們需要定制和修改的MMI應(yīng)用。其中的mmi目錄中是pluto原本寫(xiě)好的mmi應(yīng)用,mtkapp中是mtk后來(lái)所寫(xiě)的mmi應(yīng)用,而Customer中是圖片、字符串等資源的定制目錄,大部分只是修改了字符串和圖片、聲音等的項(xiàng)目只要修改這個(gè)目錄下的資源即可。
mtk_lib中是已經(jīng)編譯鏈接好的ARM版的庫(kù)。因整個(gè)工程過(guò)于龐大,若完整的全新構(gòu)建一次需要很長(zhǎng)的時(shí)間。為了減少構(gòu)建的時(shí)間,將一些已經(jīng)完全調(diào)試穩(wěn)定且基本不再改動(dòng)的庫(kù)和MTK不開(kāi)放源代碼的庫(kù)放到這個(gè)目錄,這樣每次構(gòu)建時(shí)只需要將這些庫(kù)和其他編譯好的庫(kù)鏈接起來(lái)就可以了。這些庫(kù)一般是ARM版的,若有thumb版的,則再增加一個(gè)和ARM版相對(duì)的thumb版的庫(kù),一般叫第二個(gè)庫(kù),如media_sec.lib就是thumb版的多媒體庫(kù)。
custom是所有客戶(hù)化項(xiàng)目的驅(qū)動(dòng)程序及系統(tǒng)和MMI應(yīng)用定制相關(guān)的文件的目錄。如你的手機(jī)主板的RAM、FLASH等存儲(chǔ)器的尺寸和地址空間有改動(dòng),MMI應(yīng)用的特性有不同,藍(lán)牙、WAP的配置有變化,或是有項(xiàng)目相關(guān)的新應(yīng)用,其相關(guān)文件都是放在這個(gè)目錄中和特定項(xiàng)目對(duì)應(yīng)的目錄下,如項(xiàng)目CUST1_6227,則放在CUST1_6227_BB下。要注意的是custom也作為一個(gè)模塊存在,這使得其可以通過(guò)make目錄中的custom模塊的四個(gè)文件進(jìn)行客戶(hù)化的一些定制。
applib、bootloader、init、media、j2me等是這個(gè)系統(tǒng)各個(gè)層次的相對(duì)獨(dú)立的模塊各自的目錄,其實(shí)drv和fs等目錄也可以看成是相對(duì)獨(dú)立的模塊,只不過(guò)其更重要些而在前面介紹。這些目錄包含了這些模塊的C文件和頭文件。每個(gè)目錄(模塊)都在下面的make目錄中有相對(duì)應(yīng)的目錄保存構(gòu)建時(shí)的編譯鏈接配置文件。
make是工程構(gòu)建過(guò)程中最重要的一個(gè)目錄了,工程構(gòu)建用的Makefile和一些中間配置文件將放在這里,Makefile在講解構(gòu)建過(guò)程時(shí)再具體介紹。在每個(gè)模塊對(duì)應(yīng)的目錄下,都有四個(gè)文件控制了編譯鏈接時(shí)的過(guò)程和配置。分別是:
<module_name>.def文件中是該模塊構(gòu)建過(guò)程中用的條件定義。
<module_name>.inc文件中是該模塊所有用到的頭文件所在目錄的路徑,是相對(duì)整個(gè)工程根目錄的路徑。
<module_name>.lis文件中列出了該模塊的所有C文件,其路徑也是相對(duì)整個(gè)工程根目錄的。
<module_name>.pth文件中是該模塊的所有C文件所在目錄的路徑,是相對(duì)整個(gè)工程根目錄的路徑。
build目錄中保存了構(gòu)建過(guò)程中產(chǎn)生的目標(biāo)文件和庫(kù)文件,及其他一些中間文件。
小結(jié):詳解MTK手機(jī)軟件系統(tǒng)工程目錄結(jié)構(gòu)的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!