安裝燒寫工具: Jflash-s3c2410
# tar zxvf sbc2410v6_linux-2.4.18_sdk.tgz
# cd opt/FriendlyARM/SBC2410/Jflash/
# cp Jflash-s3c2410 /usr/bin
或者直接從G寶盤下載Jflash-s3c2410,下載后注意修改Jflash-s3c2410的執(zhí)行權(quán)限
# cd u-boot-1.1.6/
# ls -l u-boot.bin
-rwxr-xr-x 1 root root1126442007-09-22 15:02 u-boot.bin
#Jflash-s3c2410u-boot.bin/t=5
+------------------------------------+
| SEC JTAG FLASH(SJF) v 0.11 +
| modified by MIZI 2002.7.13 +
+------------------------------------+
> flashType=5
> S3C2410X(ID=0x0032409d) is detected.
> K9S1208 is detected. ID=0xec76
K9S1208 NAND Flash JTAG Programmer Ver 0.0
0:K9S1208 Program 1:K9S1208 Pr BlkPage 2: Exit
Select the function to test :0
[SMC(K9S1208) NAND Flash Writing Program]
Source size: 0x1b803 <==> 112643 byte
Available target block number: 0~4095
Input target block number:0
STATUS:Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
K9S1208 NAND Flash JTAG Programmer Ver 0.0
0:K9S1208 Program 1:K9S1208 Pr BlkPage2: Exit
Select the function to test :2
注:
(1) 將u-boot.bin燒寫到Nand Flash的前111K
(2) 從u-boot源碼獲知"環(huán)境變量"的存放位置及其大小
vi u-boot-1.1.6/include/configs/smdk2410.h
---------------------------------------------
#define CFG_ENV_OFFSET 0x0F0000
#define CFG_ENV_SIZE 0x010000
環(huán)境變量的存放位置:960KB;大小:64KB(Nand Flash第1M的最后64KB中存放環(huán)境變量)。這樣uImage就應(yīng)該存放于0x100000<==> 1MB(從這個位置開始存放內(nèi)核)
新開發(fā)的電路板沒有任何程序可以執(zhí)行,也就不能啟動,需要先將u-boot燒寫到Flash中。如果主板上的EPROM或者Flash能夠取下來,就可以 通過編程器燒寫。例如:計算機BIOS就存儲在一塊256KB的Flash上,通過插座與主板連接。但是多數(shù)嵌入式單板使用貼片的Flash,不能取下來 燒寫。這種情況可以通過處理器的調(diào)試接口,直接對板上的Flash編程。處理器調(diào)試接口是為處理器芯片設(shè)計的標準調(diào)試接口,包含BDM、JTAG和 EJTAG3種接口標準。BDM(Background Debug Mode)主要應(yīng)用在PowerPC8xx系列處理器上;EJTAG主要應(yīng)用在MIPS處理器上。這3種硬件接口標準定義有所不同,但是功能基本相同,下 面都統(tǒng)稱為JTAG接口。
最簡單方式就是通過JTAG電纜,轉(zhuǎn)接到計算機并口連接。這需要在主機端開發(fā)燒寫程序,還需要有并口設(shè)備驅(qū)動程序。開發(fā)板上電或者復位的時候,燒寫程序探 測到處理器并且開始通信,然后把Bootloader下載并燒寫到Flash中。這種方式速率很慢,可是價格非常便宜。一般來說,平均每秒鐘可以燒寫 100~200個字節(jié)。
燒寫完成后,復位實驗板,串口終端應(yīng)該顯示u-boot的啟動信息。
評論