FL2440 uboot-kernel-rootfs 燒寫總結(jié)
? ? ? ?FL2440核心板默認(rèn)燒錄了廠家的系統(tǒng)(bootloader: FL_2440bootV6-1)。經(jīng)過測(cè)試,使用廠家提供的DNW燒寫方法燒寫發(fā)現(xiàn),該方法限制條件較多,比如DNW軟件驅(qū)動(dòng)的安裝兼容性問題,當(dāng)前驗(yàn)證在XP環(huán)境下可以正確安裝驅(qū)動(dòng)并映射出端口,磕磕絆絆較多,故參考網(wǎng)上FL2440燒錄資料,總結(jié)FL2440燒錄心得,以備后續(xù)查閱。
使用工具:J-Link
J-link強(qiáng)制燒寫uboot原理:S3C2440有4KB的SRAM,它不需要初始化就可以直接執(zhí)行程序。S3C2440從NAND FLASH啟動(dòng)時(shí),SRAM的地址會(huì)掛載到0x0-0x1000地址空間。
一、準(zhǔn)備工作
1、init.bin (1KB),作用:初始化SDRAM。
2、u-boot.bin_openjtag(175KB) 這是一個(gè)特殊的Uboot,在編譯時(shí)在開發(fā)板配置文件中添加 #define? CONFIG_SKIP_LOWLEVEL_INIT???? 1//支持在SDRAM中直接運(yùn)行。添加了這個(gè)宏定義后,uboot就跳過了內(nèi)存初始化部分,因?yàn)榇藭r(shí)我們的內(nèi)存已經(jīng)先由“init.bin“初始化好了,再次初始化會(huì)出現(xiàn)內(nèi)存數(shù)據(jù)的丟失。
3、u-boot.bin、uImage、rootfs
注:init.bin、u-boot.bin_openjtag下載地址
二、燒寫uboot.bin
1.開發(fā)板從NAND FLASH啟動(dòng),連接J-link后,打開J-Link Commander
2.下載init.bin到SRAM(4KB)并運(yùn)行
3.下載u-boot.bin_openjtag到SDRAM(64MB)0x33f80000并運(yùn)行,串口顯示有OpenJTAG>提示符
4.下載u-boot.bin到SDRAM 0x30000000
5.從SDRAM 0x30000000燒寫u-boot.bin到NAND FLASH。u-boot分區(qū)512K,u-boot.bin大小224KB
6.移除J-link,重啟開發(fā)板
三、tftp方式燒寫kernel、rootfs
1.?設(shè)置uboot環(huán)境變量 editenv serverip
2.?Tftp 0x30008000 uImage
3.?Nand erase 0xa0000 0x400000
4.?Nand write 0x30008000 0xa0000 0x400000
5.?Tftp 0x30008000 fs_qt4.8.5.yaffs
6.?Nand erase 0x4a0000 0x0fb60000
7.?Nand write.yaffs 0x30008000 0x4a0000 $filesize
四、重啟開發(fā)板