• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    MTK手機(jī)平臺內(nèi)存使用技術(shù)概述

    2010-11-16 05:51:06王卡風(fēng)馮顯桂王仁波
    中國新技術(shù)新產(chǎn)品 2010年7期
    關(guān)鍵詞:程序員內(nèi)存靜態(tài)

    王卡風(fēng) 馮顯桂 湯 彬 王仁波

    (1、東華理工大學(xué)信息工程學(xué)院,江西 撫州 3440002、深圳市五巨科技有限公司工程師,廣東 深圳 5180003、東華理工大學(xué),江西 撫州 344000)

    1 MTK平臺內(nèi)存概述

    MTK平臺的內(nèi)存由RAM和flash memory構(gòu)成,其中RAM用來存儲讀寫數(shù)據(jù),flash memory用來存儲只讀數(shù)據(jù)和文件目錄,對于不同的平臺,flash memory又有不同的分類,通常采用nor flash,也有的采用nand flash。通常情況下,MT6225平臺默認(rèn)的ram和flash memory大小分別為4M和16M,也有少數(shù)采用8M和 32M,如08A、0812,對于16M的flash memory來說,有2M被用于NVRAM來存儲文件系統(tǒng),因此真正用于系統(tǒng)的只剩下14M。

    MTK對內(nèi)存的分布實行分段分塊來處理,其結(jié)構(gòu)如下圖1所示。

    2 MTK內(nèi)存復(fù)用的理論支持

    2.1 內(nèi)存復(fù)用的機(jī)理

    MTK以其技術(shù)門檻和成本低贏得了很大的市場,對于MTK手機(jī)方案商來說,為節(jié)約其成本,通常其內(nèi)存都不是很大,因此要在小內(nèi)存上作出各種各樣的多功能手機(jī),顯然對于內(nèi)存使用來說無疑是個障礙,因此MTK提供了內(nèi)存復(fù)用技術(shù)來解決這個問題。

    MTK平臺內(nèi)存復(fù)用是對已分配的內(nèi)存重新使用,動態(tài)內(nèi)存分配均是對已分配內(nèi)存的復(fù)用。

    在遇到內(nèi)存的ram緊張時,不一定非要采用增加RAM來實現(xiàn),這樣成本較大,可以采用復(fù)用內(nèi)存也可以節(jié)約大量內(nèi)存。在SCAT文件中,很多時候,我們可以看到關(guān)健字overlay,這是一些手機(jī)的應(yīng)用中為節(jié)省內(nèi)存使用的復(fù)合內(nèi)存,如INTSRAM_MULTIMEDIA 0x400000000xC000,聲明了MED復(fù)用內(nèi)存的起始地址,只要不沖突,這幾乎是最好的解決內(nèi)存緊張的方法。如果RAM編繹到最后出錯,提示RAM超過了,這時就要精確計算超出部分的大小,然后再根據(jù)計算的大小尋找解決辦法。計算的方法是打開LIS文件,把RAM或者ROM加起來,減去14或者4,超過的字節(jié)數(shù),就是需要調(diào)整的內(nèi)存大小。

    2.2 內(nèi)存復(fù)用的可行性

    內(nèi)存復(fù)用其實采用的就是在不同時刻讓不同的程序使用同一塊內(nèi)存,其原理和通信中的時分復(fù)用(TDM)原理相類似,因此只要我們對申請的內(nèi)存進(jìn)行統(tǒng)一的管理,讓其在特定的時候占有,并在另一特定的時候釋放,這樣便可以實現(xiàn)內(nèi)存復(fù)用,解決內(nèi)存資源不足,其復(fù)用原理如圖2所示。

    2.3 MTK內(nèi)存使用模式

    MTK平臺的內(nèi)存使用有三個模式:靜態(tài)模式、靜態(tài)+動態(tài)模式、動態(tài)模式。

    1)靜態(tài)模式

    對于靜態(tài)模式來說,它不使用內(nèi)存的動態(tài)分配,而采用一系列的全局變量和數(shù)組來占用系統(tǒng)剩余內(nèi)存,因此不需要考慮對資源的申請和銷毀,但是對系統(tǒng)內(nèi)存的使用較大。一般來說,在現(xiàn)在的MTK基線版本中,系統(tǒng)空閑的內(nèi)存在100K左右,到方案商出貨時,添加了其他應(yīng)用,此時的內(nèi)存剩余量,在20K~30K左右。程序移植時,空間問題難以解決。除此之外,程序模塊之間的耦合性高,可維護(hù)和擴(kuò)充性差。

    2)靜態(tài)+動態(tài)模式。

    使用各種復(fù)用方法先為整個程序獲取一大塊內(nèi)存,然后去管理這段內(nèi)存。但是沒有有效的內(nèi)存管理方法,一般用用指針的方式將整個程序中使用到的零零碎碎的內(nèi)存放到其中去,過于零碎的內(nèi)存,當(dāng)然沒有放到這段內(nèi)存中了,依然會占用一些系統(tǒng)的剩余內(nèi)存。此方法相比于靜態(tài)的方式,內(nèi)存占用小多了。

    3)動態(tài)模式

    對于第二種模式來說,雖說其占用的內(nèi)存少了,但是由于缺少有效的內(nèi)存管理方法,程序員需要花很多精力來對內(nèi)存進(jìn)行管理,而他們希望盡量使用同一種方法來動態(tài)管理內(nèi)存,就像在PC平臺上使用malloc一樣簡單。顯然上面的模式不是解決內(nèi)存復(fù)用的最佳方式。那么為了使編程人員從內(nèi)存使用的困擾中解脫出來,MTK提供了幾套動態(tài)的內(nèi)存管理機(jī)制,程序員只需從內(nèi)存中獲取一塊內(nèi)存,然后采用MTK提供的管理方法來使用這塊內(nèi)存,這樣既給程序員減少了內(nèi)存使用的負(fù)擔(dān),又可以實現(xiàn)內(nèi)存復(fù)用,其動態(tài)模式如圖5所示。

    總結(jié)上面三者的優(yōu)缺點見表

    ?

    [1]KAL_ProgrammingGuide Media Tek[Z].20041005

    [2]SystemServiceUserManualMedia Tek[Z].20041021

    [3]Create_Primitive_Message_UserManualMedia Tek[Z].20040909

    [4]ARM體系結(jié)構(gòu)與編程,杜春雷,清華大學(xué)出版社 200302

    猜你喜歡
    程序員內(nèi)存靜態(tài)
    為了讓媽媽看懂地圖,一位“野生程序員”做了個小程序
    消費電子(2022年7期)2022-10-31 06:17:10
    靜態(tài)隨機(jī)存儲器在軌自檢算法
    怎樣成為一名優(yōu)秀程序員
    幼兒100(2020年29期)2020-10-21 06:17:58
    “春夏秋冬”的內(nèi)存
    程序員之子
    意林(2017年24期)2018-01-02 22:49:14
    加班
    三月三(2016年6期)2016-06-21 10:25:33
    機(jī)床靜態(tài)及動態(tài)分析
    具7μA靜態(tài)電流的2A、70V SEPIC/升壓型DC/DC轉(zhuǎn)換器
    基于內(nèi)存的地理信息訪問技術(shù)
    50t轉(zhuǎn)爐靜態(tài)控制模型開發(fā)及生產(chǎn)實踐
    上海金屬(2013年6期)2013-12-20 07:57:59
    深圳市| 镇康县| 尉氏县| 卓尼县| 翼城县| 萍乡市| 祥云县| 天门市| 扶沟县| 陇川县| 新沂市| 牟定县| 南开区| 如皋市| 龙川县| 定安县| 资兴市| 湘乡市| 盐山县| 九江市| 恩平市| 前郭尔| 沁水县| 南宫市| 英超| 临猗县| 泰来县| 新昌县| 泗阳县| 昆山市| 工布江达县| 阿坝| 松原市| 巴马| 漾濞| 汉源县| 浠水县| 汽车| 昭觉县| 平潭县| 自治县|