WINCE 学习
第一个问题:
红外组件问题:在定制过程中,针对2440开发板的组件要求加入红外组件,但是不是许多系统都需要这个功能的,由于它已经默认到我们的BSP中了,所以我们要修改红外组件,使其功能失效,即注释掉它。同理,打开parameterview选项卡中的platform.bib文件,找到这一段代码:
IF BSP_NOSERIAL !
irsir.dll $(_FLATRELEASEDIR)/irsir.dll NK SH
irda2440.dll $(_FLATRELEASEDIR)/ser2440.dll NK
SH
ser2440.dll $(_FLATRELEASEDIR)/ser2440.dll NK
SH
ENDIF BSP_NOSERIAL !
把关于irsir.dll的这一句代码用分号注释掉即可,这也解决了我们在没有选择红外组件时,编译报错的问题,报错一般为:could not find irsir.dll。
第二个问题:
今天想定制个NK.bin,经编译,出现以下提示:
Error: Ram start overlaps rom binary
Rom end : 0x8e2ee4b4
Ram start: 0x8de4f000
NK
physfirst 8c200000
physlast 8e2ee4b4
ulRAMFree 8de4f000
经过分析发现此错误应该是因为内核文件超出了29M的范围,即ram的起始地址越过rom的结束地址,所以我们只需要修改ram的起始地址即可,使其变大一点.
在P通过修改了config.bib文件的
;;; Tarzan Debug mode
NK 8C200000 01C00000 RAMIMAGE
; NK 80040000 01E00000 RAMIMAGE
; CHAIN 81E40000 00001000 RESERVED
; DRIVERS 81E41000 001BF000 RAMIMAGE
; RESERVE 8df00000 00080000
; RAM 8c200000 01D00000 RAM
RAM 8ED00000 02200000 RAM //修改内容:以前的8D000000-->8ED00000;
PS: 编译WinCE时,经常会出现这样的问题,选择Release的版本,编译没有问题,编译Debug 的时候报错 :Ram start overlaps rom binary。
原因:因为编译Debug版本时文件太大,超过29M时就会报错,原因是ROM和RAM空间的冲突