阅读:3146回复:20
如何使自己的Wince不受32M内存限制
大侠们,
我用wince.net4.2的platform builder 配了好多次wince平台但总是受32M内存的限制,弄得我连进入wince的msdos方式都不行一进它就说内存不够。 别外我在platform builer下的platform->settings下进行环境变量(Environment)设置时设为IMGRAM64=1则不行为IMGRAM32=1或低于64的IMGRAM值为1都行不知这是什么缘故? 另外,当我进行IMGRAM64设为1时,是出现了提示,但我也按照那个提示在Platform->setting在的Options标签下将Enabled ....32M(即允许映象内存大于32M)选择了,可是这个选择好象根本就无效,因为再进行那个IMGRAM环境变量的设置仍然无效,提示的信息依然如故.另外我想要冲破内存64M的限制,该怎么设置或作什么改动?现在它不检测到机器的实际内存! |
|
沙发#
发布于:2004-08-24 16:59
急~~~~
|
|
论坛版主
|
板凳#
发布于:2004-08-24 18:02
你用什么试的?仿真环境还是自己的平台?你的物理内存有多大?
|
|
地板#
发布于:2004-08-27 09:11
强烈关注
|
|
|
地下室#
发布于:2004-08-27 10:00
“platform->settings下进行环境变量(Environment)设置”,只是把IMGRAM64设为1。
你还要在config.bib中设定相应的动作才行。例如,我的config.bib是这样的: 。。。。 。。。。 。。。 IF IMGRAM64 IF IMGFLASH IF IMGEBOOT NK 84080000 01f80000 RAMIMAGE ; length = total - amount used e.g. 0xFE0000 + 0x20000 = 0x1000000 EDBG 8C120000 00020000 RESERVED ; 2000 for EBOOT - 3 Client memory pools of 24K RAM 80140000 03EC0000 RAM ; length = total - amount used ENDIF IF IMGEBOOT ! NK 84000000 02000000 RAMIMAGE RAM 80120000 03EE0000 RAM ; length is total - used, e.g. 1000000 - 66000 - 0xc1000 ENDIF ENDIF ENDIF 。。。 。。。 。。。 [编辑 - 8/27/04 by leo_cyl] |
|
5楼#
发布于:2004-08-27 10:35
这个设置是针对多大内存的?还是说64M,128M,256M都可以使用?
|
|
|
6楼#
发布于:2004-08-27 10:44
多大内存是由你设定啊!我试过64m没问题。128m以上我没条件试。但是我知道wince是通过config.bib来配置内存的!
|
|
7楼#
发布于:2004-08-27 11:16
NK 84000000 02000000 RAMIMAGE
RAM 80120000 03EE0000 RAM ; length is total - used, e.g. 1000000 - 66000 - 0xc1000 nk 和 ram后面的两个数字是怎么计算出来的呀,没有看懂,84000000 是随便写的吗? |
|
|
8楼#
发布于:2004-08-27 12:04
请参考WINCE HELP中对CONFIG.BIB的描述.
84000000是我的板子DRAM的起始虚拟地址,02000000是长度. [编辑 - 8/27/04 by leo_cyl] |
|
9楼#
发布于:2004-08-27 14:33
呵呵,我是想问这些地址你是怎么知道的呢?怎么计算出来的。
|
|
|
10楼#
发布于:2004-08-27 21:02
拜托!我做的BSP,难道我还不知道吗?
实在不知道就看SOURCE CODE中的MMU MAPPING TABLE。 |
|
11楼#
发布于:2004-08-31 22:18
WinCE 4.2 Doc中的有关文档,我想也许有用。
------------------------------ The default end address of RAM is 28 MB, unless you set IMGRAM16, IMGRAM32, or IMGRAM64, or build an OS image for a locale outside the United States. The Config.bib file for your platform specifies the end address of RAM. The OEMInit function determines whether to search for additional RAM past the end address of RAM. If you modify Config.bib, OEMInit does not search for additional RAM. Note Microsoft assumes in the following procedure that Config.bib specifies the default 28 MB of RAM. If you want to change the default amount, edit the IsDRAM function in the %_WINCEROOT%\Public\Common\OAK\CSP\i486\OAL\Cfwpc.c file. To support or simulate more than 64 MB of RAM In %_WINCEROOT%\Public\Common\Oak\Csp\i486\Inc\Pc.h, change CEPC_EXTRA_RAM_SIZE to the total amount of RAM you want to support, minus the amount specified in the Config.bib file. The default value is 0x2400000 and the default RAM in Config.bib is 28 MB. To support 128 MB of RAM, change the value to 0x6400000. In %_WINCEROOT%\Public\Common\Oak\Csp\i486\Oal\OEMInit.asm, change the first entry of _OEMAddressTable to the total amount of RAM you want to support. The default value is 0x04000000, which is 64 MB. To support 128 MB of RAM, change the value to 0x8000000. Build i486oal.lib with the following minimal set of commands. cd %_WINCEROOT%\Public\Common\OAK\CSP\i486\Oal build -c sysgen i486oal Build the platform with the following commands. cd %_TARGETPLATROOT%\Kernel\Buildexe set WINCEREL=1 build |
|
12楼#
发布于:2004-09-01 14:06
你用什么试的?仿真环境还是自己的平台?你的物理内存有多大? s3c 2410 |
|
论坛版主
|
13楼#
发布于:2004-09-01 16:13
还没解决?按照上面那位兄弟说的试没?在config.bib里面用
RAM StartAddr length RAM 可以指定实际可用RAM大小,实际上配置那些环境变量也就是在设这些参数,如果设置后不对,你试试在你的平台输出目录(_FLATRELEASEDIR)里面找到config.bib,然后看看这个设置对不对,如果不对在这里改,改了后在pb里面makeimg。 |
|
14楼#
发布于:2004-09-02 16:41
http://www.driverdevelop.com/forum/html_76516.html?1094114435
二贴可以相互参考。 |
|
|
15楼#
发布于:2004-09-02 19:47
hi, my friends :
If i edit the config.bib, PB will give me the following message. Start 8dba4d0c Len 00000054 Start 8dba4d60 Len 000015ec Error: Bad rom_width 40! Fatal error hit, exiting... makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec). makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec). Error PB2505: Error executing #(C:\WINCE420\PUBLIC\SPhoneII\RelDir\SAMSUN~2\)makeimg.exe. |
|
16楼#
发布于:2004-09-02 20:31
my config.bib default setting : ; NK name #define NKNAME NK ; NK Start address #define NKSTART 8C200000 #define NKLEN 01D00000 #define RAMSTART 8E000000 #define RAMLEN 01F0000 $(NKNAME) $(NKSTART) $(NKLEN) RAMIMAGE RAM $(RAMSTART) $(RAMLEN) RAM but i edit the RAMSTART and RAMLEN that still unuse. |
|
17楼#
发布于:2004-09-03 13:26
It could work !!
wxl_50685330 , leo_cyl , shader, blue123. thanks a lot . |
|
论坛版主
|
18楼#
发布于:2004-09-03 15:07
你改哪儿了?不要动8RAMSTART,单加长RAMLEN,注意不要超过你硬件的空间
|
|
19楼#
发布于:2004-09-07 10:49
虽然有所不同,但是还是找到相应得设置,多谢了!~
|
|
上一页
下一页