|
FS2410 nandflash重新分區(qū)
2009-04-20 11:12
優(yōu)龍F(tuán)S2410開(kāi)發(fā)板默認(rèn)配有l(wèi)inux和Wince兩個(gè)系統(tǒng),兩系統(tǒng)占了64m nandflash的大部分,由于開(kāi)發(fā)的應(yīng)用程序是基于WinCE的,打算將Linux相關(guān)分區(qū)移除,其空間用于WinCE應(yīng)用程序。即將NAND分3個(gè)區(qū),分區(qū)0裝bootloader,分區(qū)1裝wince,分區(qū)2用作wince中的NandFlash 1、首先用ADS打開(kāi)S3C2410_BIOS,這個(gè)是公司光盤(pán)提供的bootloader的源程序. 打開(kāi)其中的Nand.c文件,原來(lái)的定義如下 static struct Partition NandPart[] = { {0, 0x00040000, "bootloader"}, //256K {0x00040000, 0x001c0000, "zImage"}, //0.75M {0x00200000, 0x01e00000, "cramfs"}, //30M {0x02000000, 0x02000000, "WinCE"}, //32M, {0, 0 , 0} }; 第一部分用來(lái)放bootloader, 第二部分是linux的內(nèi)核,第三部分是linux文件系統(tǒng)(linux內(nèi)核和文件系統(tǒng)是分開(kāi)的). 最后32m wince占了30m,剩下2m可以當(dāng)硬盤(pán)用. 把它改成如下的形式: static struct Partition NandPart[] = { 2、同樣在nand.c文件里找到LoadRun函數(shù) 將 void LoadRun(int part_sel)里面的
.按照使用手冊(cè),用sjf2410將上述bios燒寫(xiě)到NandFlash中,(用上述文件替換原來(lái)“flash燒寫(xiě)”文件夾下的.bin文件).
3、將“\\SMDK2410\DRIVERS\NandFlsh\FMD”中的cfnand.h文件中的下面幾個(gè)定義改動(dòng)一下,如下所示: #define NUM_BLOCKS 0x1000 // 64 MB On-board NAND flash
4、需要在bootload中修改WIN CE燒寫(xiě)的地址與引導(dǎo)WIN CE啟動(dòng)的地址,確保它們相同.將“\\SMDK2410\INC”文件下的loader.h中的下面幾個(gè)定義改動(dòng)一下,如下所示: 改為如下: 這里Reserved_Boot_Blocks是指給bootloader和NK在NAND上保留多少塊,剩下的就可以用作wince中的NandFlash了。我的前兩個(gè)分區(qū)占了0x02040000的空間,共0x810個(gè)塊。原文件中有這樣的注釋:(NBOOT_BLOCK_SIZE + TOC_BLOCK_SIZE + EBOOT_BLOCK_SIZE),其實(shí)根本不是那么回事,優(yōu)龍用自己的bootloader裝載wince,沒(méi)用nboot,也沒(méi)用eboot,所以不要看這個(gè)注釋,否則想穿腦袋也想不通。 pFlashInfo->dwNumBlocks = NUM_BLOCKS - IMAGE_START_BLOCK;
|
|
|
來(lái)自: Beike Library > 《我的圖書(shū)館》