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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值