久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

uboot和內(nèi)核的移植(修改s3c2410的Nandflash分區(qū))

 定慧圖書館 2012-02-02
uboot和內(nèi)核的移植(修改s3c2410的Nandflash分區(qū))
2009-08-14 20:56

參考《嵌入式Linux應(yīng)用開發(fā)完全手冊》移植了UBOOT1.1.6和內(nèi)核Linux2.6.22

由于我用的是阿南的AN2410SSB,沒有norflash,,只能把uboot燒進(jìn)nand。剛開始不能saveenv保存環(huán)境變量,,因?yàn)樵及姹臼潜4嬖趎or的,,在打了補(bǔ)丁后問題解決,可以把環(huán)境變量保存在nand上了,,但是修改部分的代碼還有待研究,。

接著配置編譯內(nèi)核,通過tftp下載到sdram執(zhí)行,,打印如下的錯(cuò)誤信息:

usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?

并且不斷重復(fù),,我想應(yīng)該是板子沒有把USB設(shè)備引出的緣故,暫時(shí)不管,,應(yīng)該不會(huì)影響到后面文件系統(tǒng)的移植,。

但是還有一個(gè)問題,就是nand的分區(qū)問題,,內(nèi)核把nand分成了三個(gè)區(qū):kernel ,;jffs2;yaffs,,打印信息如下:

NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 3917 at 0x03d34000
Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00200000 : "kernel"
0x00200000-0x00a00000 : "jffs2"
0x00a00000-0x04000000 : "yaffs"

有壞塊,,沒辦法有點(diǎn)郁悶。該內(nèi)核沒有給在nand上給uboot留一個(gè)分區(qū),。因?yàn)樗槍Φ氖怯衝or的班子,,沒辦法,要自己在0地址多加一個(gè)uboot分區(qū)用來保存uboot,。網(wǎng)上有的說bios分區(qū)要和內(nèi)核分區(qū)一致,,有的則說不要緊,至此沒搞清楚,。,。。

目標(biāo):

mtdblock0 0x00000000-----------0x0100000 1M        uboot

mtdblock1 0x00100000-----------0x0600000 5M        kernel

mtdblock2 0x00600000-----------0x1E00000 24M      root

§mtdblock3 0x01E00000----------0x04000000 34M      user

具體實(shí)現(xiàn)如下:

首先修改BIOS里面的分區(qū),,在nand.c

static struct Partition NandPart[] =

{
       {0,    0x0100000, "uboot"},  

       {0x00100000, 0x0600000, "kernel"},

       {0x00600000, 0x1E00000, "root"},  

       {0x01E00000, 0x04000000, "user"},
};

再修改linux內(nèi)核中的分區(qū)信息linux-2.6.22在driver/mtd/nand中s3c2410_nand.c中修改分區(qū)信息應(yīng)該與BIOS中的分區(qū)信息相對照.

#define NUM_PARTITIONS 4 //NAND的分區(qū)數(shù)目

#define KERNEL_SIZE SZ_1M*5 //內(nèi)核分區(qū)空間大小
#define ROOT_SIZE SZ_1M*24 //
根文件系統(tǒng)分區(qū)大小
#define USER_SIZE SZ_1M*34 //用戶空間分區(qū)大小

§static struct mtd_partition partition_info[] = {
{ .name = "U-boot",
   .offset = 0,
   .size = UBOOT_SIZE
    },
{ .name = "linux 2.6.16 kernel",
   .offset = UBOOT_SIZE,
   .size = KERNEL_SIZE
},
{ .name = "root",
   .offset = UBOOT_SIZE+KERNEL_SIZE,
   .size = ROOT_SIZE
},
{ .name = "user",
   .offset = UBOOT_SIZE+KERNEL_SIZE+ROOT_SIZE,
   .size = USER_SIZE
      }
};

這樣就完成了,。重新編譯下載內(nèi)核,OK

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多