通常情況,wince系統預設的image大小是32M,一般這個大小是夠了。但如果添加的組件比較多,產生的NK.bin就會超過32M,這時就需要做一些修改了。
1、將項目的配置屬性 "Run-time image can be larger than 32MB (IMGRAM64=1)"打上勾。
2、修改Eboot下的loader.h
#define ROM_RAMIMAGE_SIZE 0x02300000
這裡我將image調整到35M
3、修改config.bib
NK 80200000 02300000 RAMIMAGE
RAM 82500000 01B00000 RAM
……
……
ROMSTART = 80200000
ROMWIDTH = 32
ROMSIZE = 02300000
修改規則:
NK start 80200000為image開始,與Eboot對應
NK size 2300000 為image大小,與Ebbot對應
RAM start 82500000為RAM開始地址,NKstart+NKsize=82500000
RAM size 01B00000為RAM大小,84000000(64M flash)- RAMSTART=01B00000
ROMSTART = NKstart
ROMSIZE = NKsize
由此可知,NK調大,RAM就會減小。此外ROMSIZE還是設定NK.nbX的大小。
這時你的核心只要不超過35M就OK了。
此外,CSDN上的codewarrior朋友建議將一些大的組件(如漢字)庫放到user store(如SD卡、Flash等)來減少核心大小,這也是個好辦法,NK載入時要到user store去載入,需要注意的是:在載入顯示驅動前就要載入儲存字型的存貯裝置的驅動,否則中文字型不能載入。將字型儲存到註冊表儲存的存貯裝置上,因為該存貯裝置驅動很早就載入了。
原文地址:http://www.cnblogs.com/feishanm/archive/2009/08/04/1538284.html