1.在bootloader(也叫做yl2440_mon或bios)中找到nand.c打开,找到
static struct Partition NandPart[] = {
};
改成象我上面这样,我将NAND分了3个区,分区0装bootloader,分区1装wince,分区3用作wince中的NandFlash。
2.在cfnand.h中找到
#define
#define
改成象我上面这样
3.在loader.h中找到
#define RESERVED_BOOT_BLOCKS
#define IMAGE_START_BLOCK
改成象我上面这样,这里Reserved_Boot_Blocks是指给bootloader和NK在NAND上保留多少块,剩下的就可以用作wince中的NandFlash了。我的前两个分区占了0x1c40000的空间,共0x710个块。原文件中有这样的注释:(NBOOT_BLOCK_SIZE + TOC_BLOCK_SIZE + EBOOT_BLOCK_SIZE),其实根本不是那么回事,优龙用自己的bootloader装载wince,没用nboot,也没用eboot,所以不要看这个注释,否则想穿脑袋也想不通。
4.这样改的原因简单分析一下:
在fmd.cpp中有这样一句:
pFlashInfo->dwNumBlocks
这个其实就是告诉上层驱动,我的FLASH有多少块。
原来loader.h中:#define RESERVED_BOOT_BLOCKS
0x1000-0xf80=0x80,0x80*0x4000=0x2000000,大小正好是2M字节,明白了没