好久都没有动WINCE了,以前买了友善之臂的板子跑的是5.0,只是搞过一段时间。由于公司的原因,今天在网上下载了友善2440的板子WINCE6.0bsp。今次友善提供的是一个安装包,去安装bsp和6.0的工程(工程有两个)。我选了一个带QQ的工程就重新编译了一下。
10多分钟过去了(呵呵,新进的小黑速度性能还可以,曾经还是在香港排行性能第一的机子哦),编译好了但是出错。
出错内容如下:
仔细看了一下错误,找到了
Error: Ram start overlaps rom binary
Ram的空间与ROM的空间重叠了。
在5.0的时候Ram与ROM的大小设置在config.bib文件里面的。
但是,我在vs2005的工程里面却没找到,害到我直接去BSP目录底下找才找到。
(如果网友知道在vs2005中如何找到config.bib麻烦告知一下,PB5.0可以直接在项目里面找到的)
打开config.bib文件,发现内容如下
可以看到
NK 80200000 01e00000 RAMIMAGE ;01e00000 30M(注释是本人加上去的)
RAM 82000000 01e00000 RAM
和
ROMSTART=80200000
ROMWIDTH=32
ROMSIZE=01e00000 ;01e00000 30M(注释是本人加上去的)
看一下出错信息,ROM总共是多大。
Total ROM size: 02156260 ( 34955872)
这个大概是33M左右的大小,超过了设置的ROMSIZE规定的大小,
同时,82356260=80200000(ROMSTART) +02156260 (ROMSIZE),82356260明显超过了RAM的起始地址82000000。
因此,现在问题来了,有两个步骤。
1、把ROMSIZE的大小放大。
2、根据ROMSIZE的大小重新调整RAM的起始地址
我的调整结果如下:
我将ROMSIZE设置成35M的大小。
当然解决这个问题的方法还有其他方法
可以参考
http://blog.csdn.net/joyzml/archive/2010/01/18/5207176.aspx
这个网址。
设置完成后,将重新打包NK就行了。