milkyway的窝

最初想法的诞生地

 

如何在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,编译后即可。

posted on 2007-01-04 15:11 milkyway 阅读(750) 评论(0)  编辑 收藏 引用 所属分类: wince(别人的文章技巧总结)


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜