FS2410 nandflash重新分区
2009-04-20 11:12
优龙FS2410开发板默认配有linux和Wince两个系统,两系统占了64m nandflash的大部分,由于开发的应用程序是基于WinCE的,打算将Linux相关分区移除,其空间用于WinCE应用程序。即将NAND分3个区,分区0装bootloader,分区1装wince,分区2用作wince中的NandFlash 1、首先用ADS打开S3C2410_BIOS,这个是公司光盘提供的bootloader的源程序. 打开其中的Nand.c文件,原来的定义如下 static struct Partition NandPart[] = { {0, 0x00040000, "bootloader"}, //256K {0x00040000, 0x001c0000, "zImage"}, //0.75M {0x00200000, 0x01e00000, "cramfs"}, //30M {0x02000000, 0x02000000, "WinCE"}, //32M, {0, 0 , 0} }; 第一部分用来放bootloader, 第二部分是linux的内核,第三部分是linux文件系统(linux内核和文件系统是分开的). 最后32m wince占了30m,剩下2m可以当硬盘用. 把它改成如下的形式: static struct Partition NandPart[] = { 2、同样在nand.c文件里找到LoadRun函数 将 void LoadRun(int part_sel)里面的
.按照使用手册,用sjf2410将上述bios烧写到NandFlash中,(用上述文件替换原来“flash烧写”文件夹下的.bin文件).
3、将“\\SMDK2410\DRIVERS\NandFlsh\FMD”中的cfnand.h文件中的下面几个定义改动一下,如下所示: #define NUM_BLOCKS 0x1000 // 64 MB On-board NAND flash
4、需要在bootload中修改WIN CE烧写的地址与引导WIN CE启动的地址,确保它们相同.将“\\SMDK2410\INC”文件下的loader.h中的下面几个定义改动一下,如下所示: 改为如下: 这里Reserved_Boot_Blocks是指给bootloader和NK在NAND上保留多少块,剩下的就可以用作wince中的NandFlash了。我的前两个分区占了0x02040000的空间,共0x810个块。原文件中有这样的注释:(NBOOT_BLOCK_SIZE + TOC_BLOCK_SIZE + EBOOT_BLOCK_SIZE),其实根本不是那么回事,优龙用自己的bootloader装载wince,没用nboot,也没用eboot,所以不要看这个注释,否则想穿脑袋也想不通。 pFlashInfo->dwNumBlocks = NUM_BLOCKS - IMAGE_START_BLOCK;
|
|
来自: Beike Library > 《我的图书馆》