燒錄檔案到開發板操作
阿新 • • 發佈:2019-01-27
軟體工具準備: 1.Jlink燒錄軟體(Setup_JLinkARM_V410i.exe)
2 .Windows下 tftp軟體安裝(tftp32.exe)
3.遠端登陸軟體(securecrt或Putty)
4. USB轉串列埠驅動安裝(PL-2303)
硬體準備:
開發板儲存系統(我的開發板是fl2440):
開發板燒錄流程圖解:
一、將記憶體初始化程式bootstrap下載至SRAM並執行
電源開關。
2.以下是常用命令:
speed 12000:設定下載速率為12M。
r:reset,復位命令。
h:halt,停機、也有暫停的功能。
loadbin <filename> <address>:下載filename檔案到地址address上。
setpc:設定PC暫存器的值。
3.具體操作
J-Link>speed 12000
J-Link>h
J-Link>loadbin E:\images\bootstrap-s3c2440.bin 0
J-Link>setpc 0
J-Link>g
****************************************************************************************************************************************************
說明:
(1).speed 12000意在設定開發板頻率,也就是設定開發板的下載速率
(2).因為選擇從nand flash啟動時;0x00000000是對映到4K的SRAM中的,SRAM不需要初始化、即可直接執行程式。
bootstrap-s3c2440.bin是郭工寫的一段很簡單的記憶體初始化程式,其實它就是uboot.bin檔案的前4k程式碼;注意大小必須等於或小於4KB。
****************************************************************************************************************************************************
二、下載u-boot程式至SDRAM記憶體
J-Link>h
J-Link>loadbin E:\images\u-boot-s3c2440.bin 0x33f80000
J-Link>setpc 0x33f80000
J-Link>g
**************************************************************************************************************************************************
說明:將這個bin檔案載入到33f80000這個記憶體地址
****************************************************************************************************************************************************
三、使用u-boot燒錄我們的程式至nand flash
1.設定uboot環境變數
u-boot>nand scrub /*擦出整個nandflash所有分割槽,也就是格式化nandflash*/
u-boot>set ethaddr 00:11:22:33:44:55 /*設定網絡卡MAC地址 */
u-boot>set ipaddr 192.168.1.2 /*設定網絡卡ip地址,也就是開發板的ip地址 */
u-boot>set serverip 192.168.1.168 /*設定tftp伺服器地址,也就是本機乙太網卡的ip地址 */
u-boot>save /*儲存uboot環境變數*/
2.燒錄u-boot-s3c2440.bin程式
u-boot>tftp 30008000 u-boot-s3c2440.bin /*下載u-boot程式到sdram記憶體中*/
u-boot>nand erase 0 100000 /*擦除u-boot存放相應分割槽*/
u-boot>nand write 30008000 0 60000 /*三個數字對應首地址,偏移量,檔案大小,該命令是將u-boot從記憶體中寫到nandflash的相 應分割槽*/
3.燒錄linux核心
u-boot>tftp 30008000 linuxrom-s3c2440.bin /*下載linux核心檔案到sdram記憶體中*/
u-boot>nand erase 100000 800000 /*擦除linux核心及相應的分割槽,100000是分割槽起始地址,800000是分割槽的大小,擦 除是整個分割槽的擦, 不能擦除一個分割槽的一部分,否則會出錯*/
u-boot>nand write 30008000 100000 800000 /*將linux核心從記憶體中寫到nandflash相應分割槽*/