從MTK的scat文件談ROM和RAM的分配,管理和問題解決

mtk25平臺默認的是128Mbit flash memory 和 32Mbit SRAM,因爲1BYTE等於8BIT,所以就是我們通常所說的是16M ROM和4M RAM,不過由於文件系統佔用2M,這2M一般又被分爲系統盤和用戶盤,系統盤存儲NV文件和MMS相關文件,對用戶不可見,用戶盤用戶連上電腦就可以看到,但由於一些原因,有不少手機是不設用戶盤的,用戶盤過大,會導致彩信等一些模塊不穩定,所以很多使用NORFALSH時不設用戶盤,但NAND FALSH一般都會設置一定的用戶盤。如果需要設置,只要修改宏PARTITION_SIZE值就可以控制。所以我們能夠使用的就只剩下14,這一點可以從BUILD目錄下的scatWINGTECH25_GEMINI.txt文件的聲明部分看到,在SCAT文件中,有一行是SCHEME   : external 14MB flash memory and 4MB SRAM,就是說14MROM和4MRAM。  

由於用戶需求不同,有些時候我們會修改RAM和ROM大小,一般就要相應的修改SCAT文件。在SCAT文件中,我們可以看到行ROM 0x00000000 0x00e00000,就是說可以使用的ROM從0x00000000開始,到0x00e00000結束,共計0x00e00000字節,在下面又可以看到這些ROM被分成四個4M的段使用。在SCAT的行EXTSRAM_LARGEPOOL_NORMAL 0x08000000處我們可以看到RAM的使用情況,地址從0x08000000開始, 到0x08400000 結束,共計0x00400000BYTE,即4MBYTE,如果你是32MROM,8MRAM,就要修改ROM 0x00000000 0x00e00000爲
ROM 0x00000000 0x01c00000,修改DUMMY_END 0x08400000 0x04爲    DUMMY_END 0x08800000 0x04,這樣的修改,現在的ROM和RAM大小都爲以前默認的2倍。

其實有時RAM緊張時不一定非要採用增加RAM來實現,這樣成本較大,可以採用複用內存也可以節約大量內存。 在SCAT文件中,很多時候,我們可以看到關健字overlay,這是一些手機的應用中爲節省內存使用的複合內存,如INTSRAM_MULTIMEDIA 0x40000000  0xC000,聲明瞭MED複用內存的起始地址,只要不衝突,這幾乎是最好的解決內存緊張的方法。如果ROM超過了,可能會比較麻煩一些,去掉不必要的圖片,音樂,減小圖片的質量,去掉一些不必要的功能,把宏函數轉爲普通函數都可以節約一部分ROM。

如果RAM或者ROM編繹到最後出錯,提示ROM超了或者RAM超過了,這時就要精確計算超出部分的大小,然後再根據計算的大小尋找解決辦法。計算的方法是打開LIS文件,把RAM或者ROM加起來,減去14或者4,超過的字節數,就是需要調整的內存大小

本文來自:我愛研發網(52RD.com) - R&D大本營
詳細出處:http://www.52rd.com/Blog/Detail_RD.Blog_blogercn_18644.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章