下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
對(duì)MTK平臺(tái)的一些認(rèn)識(shí)分類:MTK學(xué)習(xí)資料2012-04-0811:1119人閱讀評(píng)論(0)\o"收藏"收藏\o"舉報(bào)"舉報(bào)一、
目的
來(lái)到這里近兩月,更近距離的接近了MTK。身處基于MTK平臺(tái)的產(chǎn)品開發(fā)浪潮之中,讓我對(duì)MTK有更多的了解,不光是在平臺(tái)技術(shù)本身。就技術(shù)上,從軟件角度、系統(tǒng)角度,對(duì)MTK我應(yīng)該能給出深度而全面的評(píng)價(jià)或看法。就產(chǎn)品上,我也有自己的一些見解和思考??傊?,對(duì)于MTK我所產(chǎn)生的思考及結(jié)論,希望能在這里同大家分享。如果能拋磚引玉,引發(fā)大家更有意義及價(jià)值的思考,是我此文最大的愿望。
二、
適用范圍
全體
三、
定義
無(wú)
四、
前言
MTK是一個(gè)偉大的公司。在輿論批評(píng)山寨,并間接批評(píng)MTK的時(shí)候,我們只能認(rèn)為這是產(chǎn)業(yè)成功而引起的喧鬧中的一種形式。MTK在手機(jī)市場(chǎng)快速發(fā)展的時(shí)候,我投身所謂在振興民族通信產(chǎn)業(yè)的TD領(lǐng)域。那時(shí)我經(jīng)常提及MTK,MTK在01年起步,在04年面向市場(chǎng),花了3年時(shí)間。在一個(gè)已經(jīng)成熟的GSM網(wǎng)絡(luò),完成一個(gè)終端平臺(tái)的商用,花了3年時(shí)間。而對(duì)于一個(gè)還處于實(shí)驗(yàn)室階段的TD平臺(tái),它的成熟花個(gè)3年時(shí)間是起碼的。這是我經(jīng)常向別人解釋為什么TD終端還不成熟的理由或者借口。在努力促使TD終端商用化的過程中,經(jīng)受了3年各種各樣的煎熬,有網(wǎng)絡(luò)、平臺(tái)、應(yīng)用、項(xiàng)目、市場(chǎng)等方方面面,讓我更感覺MTK方案設(shè)計(jì)有很多可取之處。下面,我就將我所了解到的與MTK平臺(tái)有關(guān)的任何細(xì)節(jié)的東西,都一一列舉出來(lái),重點(diǎn)還是在軟件部分。
五、
MTK方案
04年,多媒體手機(jī)開始興起。MTK方案的技術(shù)核心就是基帶芯片支持多媒體功能,降低了成本,加速了多媒體手機(jī)產(chǎn)品的上市時(shí)間。MTK方案的服務(wù)核心就是turnkey模式,一改ADI、infineon等方案那種“能在我的方案上做什么賣給用戶”的思維方式,而是“我的方案能直接賣給什么用戶”。
MTK在基帶芯片中集成LCD控制器、CAMERA控制器、多媒體CODEC。這種方式,自然是外帶多媒體協(xié)處理器從成本及開發(fā)周期上無(wú)法比擬的。ADI、infineon、agere、TI等方案的出局就成必然。但為什么這些歐美公司在方案上不做調(diào)整呢?可能的原因是,在失去技術(shù)核心競(jìng)爭(zhēng)力以及領(lǐng)跑優(yōu)勢(shì)后,和中國(guó)公司站在同一起跑線競(jìng)爭(zhēng)太難。中國(guó)人能吃苦,老外要渡假。
MTK將能做的功能,基本上都給客戶做好。這大大縮短了客戶的研發(fā)周期,也就是所謂的降低了技術(shù)門檻。從節(jié)約社會(huì)勞動(dòng)力,提高社會(huì)整體效益的角度講,MTK的方式是合理的。它避免了N個(gè)客戶的重復(fù)勞動(dòng),重復(fù)的走彎路。從這個(gè)角度講,TI方案最次,連BASICMMI都沒有,還停留在早期做GSM手機(jī)的模式。
MTK這種直面客戶的模式,也最大力度的支持著手機(jī)終端生產(chǎn)者,花最大的精力在如何降低成本及創(chuàng)新去迎合消費(fèi)者需求,提升他們本來(lái)就缺乏的核心競(jìng)爭(zhēng)力。山寨機(jī)的存在,說(shuō)明有這樣一群消費(fèi)者需要成本低廉、多樣性的手機(jī)產(chǎn)品,并容忍產(chǎn)品的細(xì)節(jié)性缺陷。六、
MTK軟件平臺(tái)
做過的手機(jī)平臺(tái)有好幾個(gè),但都是Featurephone。目前做手機(jī),可以說(shuō)是在高科技產(chǎn)品光環(huán)下的系統(tǒng)集成,需要一定的技術(shù)實(shí)力,但更多的是平臺(tái)積累的經(jīng)驗(yàn)。特別是軟件,平臺(tái)之間的切換很麻煩。越是更多的依賴積累于某一平臺(tái)的經(jīng)驗(yàn),切換到其他平臺(tái)就更麻煩。越是做過多的平臺(tái)具體工作,切換到其他平臺(tái)就越麻煩。因此,我非??春弥悄苁謾C(jī)的前景,盡管現(xiàn)在市場(chǎng)存在問題,未來(lái)幾年的市場(chǎng)仍然存在問題。在未來(lái),支撐智能操作系統(tǒng)的硬件配置成本不再可怕的時(shí)候,智能手機(jī)必然是首選,是MTKturnkey模式發(fā)展方向的終極模式。我了解MTK軟件平臺(tái),主要是先看支撐軟件平臺(tái)的硬件方案。方案之間的差異化競(jìng)爭(zhēng),核心還是在硬件方案的差異化。但是所有的方案,從框架上來(lái)講,都是大同小異。最大的同,都是基于同一個(gè)ARM核,可能有基于基帶應(yīng)用的不同,在PLL、CACHE、協(xié)處理器以及外圍控制器上的小異。即使使用C166的infineon方案,性能雖然有差異,但從使用角度講,原理是一樣的。
針對(duì)MTK軟件平臺(tái),我看過它的啟動(dòng)過程、內(nèi)存分配機(jī)制、編譯機(jī)制、GUI機(jī)制、RTOS、文件系統(tǒng)以及非常重要的基帶芯片資料(主要是6225)。在閱讀MTK方案的過程中,關(guān)鍵之處我都做了記錄,一直就想找個(gè)機(jī)會(huì)對(duì)這些做一整理。6.1
啟動(dòng)過程
MT6305上電給基帶芯片供電,在一定時(shí)序條件后,給基帶芯片復(fù)位信號(hào),開始了ARM核的啟動(dòng)過程。要談啟動(dòng),我們必須熟悉Scatterfile、基帶資料的Memorymapping章節(jié)。Scatterfile定義了loadregion和excecuteregion,我們要關(guān)心系統(tǒng)運(yùn)行時(shí)代碼、數(shù)據(jù)的地址分布。
Bootarm.s是一個(gè)重要的文件,與啟動(dòng)過程有關(guān),其中的INT_Initialize函數(shù)是ARM啟動(dòng)開始執(zhí)行的代碼。BSP所做的事情主要包括:
1、配置PLL,配置基帶芯片的EMI參數(shù),以讓系統(tǒng)能夠以最大的速度讀取外部存儲(chǔ)設(shè)備數(shù)據(jù),讓CPU以最大速度運(yùn)行,從而縮短啟動(dòng)過程。
2、做好runtime代碼及數(shù)據(jù)的準(zhǔn)備,確保excecuteregion的代碼及數(shù)據(jù)到位。
3、配置好ARM七種異常模式的堆棧,進(jìn)入RTOSnucleus的初始化。
4、nucleus留給客戶的初始化函數(shù)Application_Initialize,做了平臺(tái)該做的初始化工作,比如外部控制器的初始化等等。6.2
RTOS
在分析系統(tǒng)問題,開發(fā)跨線程應(yīng)用時(shí),必須熟悉RTOS。目前使用的RTOS是nucleus,盡管在BSP中看到了它對(duì)ThreadX的支持。不同的RTOS,實(shí)際上也是大同小異,但是具體的API或者參數(shù)會(huì)有不同,因此我們需要下載nucleus的API文檔,在需要了解細(xì)節(jié)時(shí),可以翻閱此文檔。同時(shí),TRACE32支持基于RTOS級(jí)別的調(diào)試,因此對(duì)RTOS的了解,有助于提高調(diào)試能力。
有點(diǎn)特殊的是,nucleus有LISR,HISR的概念,實(shí)際上它是一種給開發(fā)者的印象。它告訴開發(fā)者,中斷處理函數(shù)LISR要盡量的耗時(shí)短,以確保其它中斷能有機(jī)會(huì)及時(shí)響應(yīng)。HISR再處理略為次要些的工作,但耗時(shí)也不能太長(zhǎng),因?yàn)镠ISR比任何TASK的優(yōu)先級(jí)都高,我們應(yīng)該讓真正需要實(shí)時(shí)的工作獲取CPU的機(jī)會(huì)。Application_Initialize中的mainp函數(shù),負(fù)責(zé)任務(wù)的創(chuàng)建。我們?cè)诖a中見不到任務(wù)創(chuàng)建的函數(shù),只需要維護(hù)任務(wù)初始化參數(shù)數(shù)據(jù)結(jié)構(gòu)。對(duì)于系統(tǒng)的那些task信息,都保存在sys_comp_config_tbl變量中,我們看不到。但是MTK提供給客戶的custom_comp_config_tbl,客戶是可以修改的,在這里用戶可以定義自己的task。關(guān)于任務(wù),需要關(guān)心數(shù)據(jù)結(jié)構(gòu)comptask_handler_struct。關(guān)于comptask_handler_struct成員的執(zhí)行順序,應(yīng)該是:comp_init_func在系統(tǒng)還未schedule即在Application_Initialize中完成,然后taskschedule后執(zhí)行comp_entry_p_cfg_func、comp_reset_func、comp_end_func我認(rèn)為無(wú)太多意義。
task和module有什么區(qū)別?可以肯定的是,task是操作系統(tǒng)層面的概念,module是軟件平臺(tái)設(shè)計(jì)者因?yàn)槟撤N需要而設(shè)計(jì)的,可能大家比我更清楚,但這種概念在具體工作中可能還是需要弄清楚。到此,基于RTOS的各個(gè)TASK應(yīng)該都已經(jīng)調(diào)度起來(lái)。首先毫無(wú)疑問,idletask必須是優(yōu)先級(jí)最低的task。按照常理,系統(tǒng)會(huì)從最高優(yōu)先級(jí)的任務(wù)開始調(diào)度,至于如何跑到MMI顯示LOGO界面,在必要時(shí),我們可以去研究。6.3
GUI機(jī)制
至于MMIframewok,我未做太多了解,但任何GUI系統(tǒng)面對(duì)的都是最終的LCDbufffer。但不同的是,MTK的基帶芯片搞了個(gè)LCD控制器,并加了layer的概念,從硬件上支持2Dfunction和加速LCD的刷屏。對(duì)于上層的GUI,要做的是選擇哪個(gè)layer是active。LCD控制器的刷屏機(jī)制。以6225為例,支持4layer。MTK資料對(duì)LCD控制器未做詳細(xì)的描述,如圖1是其對(duì)LCD接口塊圖的描述。但通過LCD控制器驅(qū)動(dòng),我們可以對(duì)LCD控制器內(nèi)部結(jié)構(gòu)做更多的假設(shè)。圖1中的Overlay,我們可以設(shè)想為一個(gè)專有的DMA控制器通道,目標(biāo)地址為L(zhǎng)CD,源地址是layerbuffer。系統(tǒng)通過配置要刷哪幾層,配置alpha值來(lái)控制2D效果。這一目的的達(dá)到,硬件上有它的考慮,我們也沒有必要做太多確定性的假想。
圖1
LCD接口塊圖
需要說(shuō)明的是,僅僅是這樣一張圖,我們應(yīng)該有更多的聯(lián)想。Layerbuffer都是從外部RAM開辟的內(nèi)存空間,LCD的訪問時(shí)序完全決定于如何配置LCD控制器。對(duì)Layerbuffer的讀寫,需要占用系統(tǒng)總線,即使再做總線上的區(qū)域規(guī)劃,外部RAM的數(shù)據(jù)總線是公共資源。對(duì)公共資源的訪問,就意味著并發(fā),意味著仲裁ARBITER。為什么在以前的項(xiàng)目中,出現(xiàn)一些關(guān)于LCD的莫名其妙的問題,不能說(shuō)這里是根本原因,但我們應(yīng)該從系統(tǒng)的角度去注意到這點(diǎn)。我對(duì)資源的占有,就意味著別人的失去。以往被掩蓋的缺陷,可能會(huì)因?yàn)橄到y(tǒng)運(yùn)行時(shí)的變化,暴露出來(lái)。這就是我認(rèn)為,有些系統(tǒng)問題,不能從代碼表面去分析,而要從ARM核的角度,從同cache,BUS,controller等外圍設(shè)備之間的聯(lián)系來(lái)系統(tǒng)的分析問題。關(guān)注一下開機(jī)LOGO的顯示,是在uem_poweron_timer_expiry_hdlr函數(shù)中,同時(shí)這里做了latchpower的動(dòng)作。還有潛力,提前顯示出LOGO。6.4
內(nèi)存分配機(jī)制
在MTK的資料中,介紹了它的內(nèi)存管理機(jī)制,有3種:ADM、Controlbuffer、SystemMemory。后兩個(gè)是系統(tǒng)使用的,與上層應(yīng)用無(wú)關(guān)。但是我對(duì)kal_system_alloc也做了初步分析。
sys_mem_ptr,其估計(jì)應(yīng)該指向的是System_Mem_Pool,
debug_mem_ptr,其估計(jì)應(yīng)該指向的是debug_Mem_Pool。
經(jīng)過初步分析,kal_system_alloc就是從System_Mem_Pool做簡(jiǎn)單的加法操作,sys_mem_left_size就是System_Mem_Pool還剩下多少。kal_system_alloc從sys_mem_ptr開始來(lái)計(jì)算要取的內(nèi)存。ctrl_buf是通過kal_system_alloc的內(nèi)存,然后再通過NU_Create_Partition_Pool創(chuàng)建POOL。系統(tǒng)的一些taskstack.等也都是通過kal_system_alloc來(lái)分配的。
也就是說(shuō),Controlbuffer、SystemMemory用的都是System_Mem_Pool的空間。而System_Mem_Pool可以查到,是在custom_configmem函數(shù)中配置。ADM就完全沒有使用操作系統(tǒng)提供的內(nèi)存管理算法,是平臺(tái)自創(chuàng)了一套。開發(fā)者,可以自己開辟一個(gè)POOL,自己在這個(gè)池用ADM提供的內(nèi)存管理API完成內(nèi)存的動(dòng)態(tài)管理。具體的分配算法,就沒有再細(xì)看,跟一些通用的內(nèi)存分配算法應(yīng)該一致。但是在以前調(diào)試一個(gè)問題的時(shí)候,應(yīng)該是可以斷定,ADM在每一個(gè)allocnode前后都加了GAP調(diào)試區(qū),來(lái)判斷是否被overwrite。
至于系統(tǒng)中,到底是用了多少塊內(nèi)存用于ADM,各塊內(nèi)存又是讓哪些應(yīng)用在共享,開發(fā)者可能更清楚。在系統(tǒng)中是否建立了對(duì)內(nèi)存動(dòng)態(tài)分配的監(jiān)控機(jī)制,比如查詢內(nèi)存泄漏、動(dòng)態(tài)內(nèi)存使用效率等等。6.5
文件系統(tǒng)
文件系統(tǒng)用的是FAT格式,最關(guān)鍵的是如何MOUNT存儲(chǔ)設(shè)備,如何匹配文件系統(tǒng)讀寫接口。MTK通過表格的形式來(lái)讓客戶選擇支持的flash,真的是很方便,考慮太周到。6.6
編譯機(jī)制
MTK的makefile,寫的很復(fù)雜,有perl腳本,也有make腳本,但框架結(jié)構(gòu)很好。雖然我對(duì)makefile結(jié)構(gòu)通讀了一遍,但沒有仔細(xì)花時(shí)間對(duì)此形成文檔。6.7
方案印象
MTK軟件平臺(tái),接觸了一年,總體感覺其底層代碼寫的很工整,結(jié)構(gòu)很清晰。越到上層,代碼就顯的龐大凌亂,結(jié)構(gòu)性和可讀性都不強(qiáng)。如果把芯片設(shè)計(jì)也說(shuō)上,我覺得MTK的基帶芯片設(shè)計(jì)很智慧,針對(duì)特定的多媒體手機(jī)應(yīng)用,設(shè)計(jì)出專門的控制器嵌入芯片內(nèi)部。像uart控制virtrualfifo和camera的resizer以及l(fā)cdcont
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年食堂承包租賃協(xié)議規(guī)范3篇
- 2025版蟲草產(chǎn)業(yè)鏈上下游企業(yè)戰(zhàn)略合作合同范本3篇
- 鄭州經(jīng)貿(mào)學(xué)院《金屬材料成形基礎(chǔ)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版運(yùn)動(dòng)場(chǎng)館租賃合同范本版B版
- 2024建筑工程砌墻合同范本
- 2024年適用電子廣告屏出租協(xié)議模板版B版
- 電力電氣行業(yè)員工需求
- 設(shè)備潤(rùn)滑知識(shí)培訓(xùn)課件
- 2025年生態(tài)保護(hù)區(qū)場(chǎng)地硬化與生態(tài)保護(hù)工程合同2篇
- 2024年高標(biāo)準(zhǔn)變形縫安裝工程承包協(xié)議版B版
- 山東師范大學(xué)新聞采訪期末復(fù)習(xí)題
- 小王子-英文原版
- 2024年江蘇省導(dǎo)游服務(wù)技能大賽理論考試題庫(kù)(含答案)
- 讓與擔(dān)保合同協(xié)議范本
- 2024年中考英語(yǔ)閱讀理解表格型解題技巧講解(含練習(xí)題及答案)
- 住宅設(shè)計(jì)效果圖協(xié)議書
- 新版中國(guó)食物成分表
- 浙江省溫州市溫州中學(xué)2025屆數(shù)學(xué)高二上期末綜合測(cè)試試題含解析
- 2024河南鄭州市金水區(qū)事業(yè)單位招聘45人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 食物損失和浪費(fèi)控制程序
- 完整版:美制螺紋尺寸對(duì)照表(牙數(shù)、牙高、螺距、小徑、中徑外徑、鉆孔)
評(píng)論
0/150
提交評(píng)論