如何在Windows CE.NET下使用大於256MB內存

 首先,你必須安裝Windows CE .NET Platform Builder 4.0(以下簡稱PB4),假設你安裝的Windows CE.NET位於D:/WINCE目錄下,那麼,首先找到文件oeminit.asm,位於D:/Wince/Public/Common/Oak/Csp/I486/Oal,這個文件是提供給OEM廠商做一些特定的配置的。
打開oeminit.asm文件,然後找到“_OEMAddressTable:”,_OEMAddressTable是一個非常關鍵的內存映射描述表,主要描述物理內存和虛擬內存之間的映射,表的每一條目有3個DWORD,依次是(VA,PA,cbSize),其中VA是虛擬內存的開始地址,一般爲80000000h,PA是物理內存的開始地址,一般爲0,cbSize就是CE內核支持物理內存的大小,這個DWORD是我們最最關心的,其單位是BYTE。需要注意的是,cbSize,一定要是4M Byte的倍數,因爲Windows CE.NET內核中檢測內存大小,是以4M Byte爲單位來檢測的。cbSize系統默認爲04000000h,其大小爲64M,我們可以將其修改爲10000000h,就可以支持256M內存了,當然,你如果想支持更大的內存,也可以增大cbSize,只要是4M的倍數即可。
另外需要修改一個文件是:,打開pc.h,查找到:
#define CEPC_EXTRA_RAM_START 0x81C00000 // 28 MB is default top of RAM for auto-detect,這裏規定Windows CE.NET內核檢測內存的開始地址,默認從28M Byte開始。
#define CEPC_EXTRA_RAM_SIZE 0x02400000 // Potentially add another 36 MB 這裏規定了內核中探測內存容量的最大尺寸,0x02400000 ,表示最大探測36M,這樣的話,28MB+36MB正好是64MB。
我們需要支持256MB內存,只需要修改CEPC_EXTRA_RAM_SIZE即可,將其改修改:
#define CEPC_EXTRA_RAM_SIZE 0x02400000+0x0C000000 // Potentially add another 36 + 128 + 64MB
修改爲上述兩個文件後,需要重新編譯系統內核,打開PB4.0,打開Build->Open Build Release Directory,進入一個DOS操作界面,然後進入D:/Wince/Public/Common/Oak/Csp/I486/目錄下,執行“Build –cfs”,重新編譯內核,然後重新建立一個新的Platform,編譯後即可。

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