小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

FS2410 nandflash重新分區(qū)

 Beike Library 2011-08-04
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[] = {
        {0,                  0x00040000, "boot"},          //256K
        {0x00040000, 0x02000000, "wince"},        //32M, 用來(lái)放wince
        {0x02040000, 0x01fc0000, "nandflash"},   //用來(lái)做硬盤(pán), 31.75
        {0,                         0         , 0}
};

2、同樣在nand.c文件里找到LoadRun函數(shù)

void LoadRun(int part_sel)里面的
if(part_sel == 3)
size = 0x01e00000; //load wince ...;        注釋掉。


void NandLoadRunW(void)里面的
LoadRun(3);     改成LoadRun(1); //表示從flash第一分區(qū)加載.


保存,make一下(不需要改其他設(shè)置),可以得到S3C2410_BIOS.bin文件。

 

.按照使用手冊(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
#define NUM_BLOCKS_NK   0x800       // 每個(gè)塊有16KB字節(jié),和在nand.c中定義的大小相同即可, 用NUM_BLOCKS_NK*16KB,得到的結(jié)果即是之前在nand.c里定義的用來(lái)存放wince映像的大小32MB.

 

4、需要在bootload中修改WIN CE燒寫(xiě)的地址與引導(dǎo)WIN CE啟動(dòng)的地址,確保它們相同.將“\\SMDK2410\INC”文件下的loader.h中的下面幾個(gè)定義改動(dòng)一下,如下所示:
#define RESERVED_BOOT_BLOCKS        0xF80

改為如下:
#define RESERVED_BOOT_BLOCKS       0x810 // 0x1c40000/0x4000=0x710
#define IMAGE_START_BLOCK           RESERVED_BOOT_BLOCKS

        這里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è)注釋,否則想穿腦袋也想不通。
        這樣改的原因簡(jiǎn)單分析一下:在fmd.cpp中有這樣一句:

pFlashInfo->dwNumBlocks = NUM_BLOCKS - IMAGE_START_BLOCK;


這個(gè)其實(shí)就是告訴上層驅(qū)動(dòng),我的FLASH有多少塊。
原來(lái)loader.h中:#define RESERVED_BOOT_BLOCKS    0xF80
0x1000-0xf80=0x80,0x80*0x4000=0x2000000,大小正好是2M字節(jié)


5、點(diǎn)“build and sygen”編譯平臺(tái),得到NK.nb0,通過(guò)USB下載到Nandflash中,運(yùn)行,進(jìn)入wince系統(tǒng)后,如使用手冊(cè)4.4.5的步驟格式化及重新分區(qū),可以看到Nandflash的空間由原來(lái)的2M擴(kuò)展到31.75M

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多