U-BOOT 使用串(chuan)口運行4412裸板程序
時間:2017-11-24 來源:未知
關鍵(jian)字:u-boot 裸(luo)板 串口 uart 調試 loadb kermit
在(zai)我們熟悉(xi)硬件(jian)平臺的(de)過(guo)(guo)(guo)程當中(zhong),通常(chang)會使用裸板(ban)代(dai)碼(ma)調(diao)試方(fang)式進行試驗驗證。常(chang)用手段是通過(guo)(guo)(guo)JTAG+openocd 進行GDB端調(diao)試,這(zhe)種方(fang)式可以(yi)實時觀察代(dai)碼(ma)對(dui)硬件(jian)的(de)影響及代(dai)碼(ma)的(de)執行順序。但(dan)是操(cao)作相對(dui)比較啰(luo)嗦(suo),并且需要借(jie)助于jtag連接器。在(zai)沒有jtag的(de)條(tiao)件(jian)下我們可以(yi)通過(guo)(guo)(guo)利用U-boot 的(de)loadb、go命令(ling)實現通過(guo)(guo)(guo)串(chuan)口傳輸下載并執行裸板(ban)代(dai)碼(ma)。當然這(zhe)樣做(zuo)的(de)缺點是我們無(wu)法到程序運行的(de)細節過(guo)(guo)(guo)程。
首(shou)先(xian)我(wo)們(men)要通過查(cha)看確(que)認裸板程(cheng)序(xu)的起始執(zhi)行地址(zhi):0x40008000

這個地址在(zai)也可能在(zai)后綴名為(wei).lds的(de)連接腳本(ben)中設(she)置

確認(ren)地址后,我們使用 《超級終端》 或《SecureCRT》 等(deng)支(zhi)持 kermit傳(chuan)輸協議(yi)的串口通信(xin)工(gong)具打開與開發(fa)板(ban)的串口連接。開啟開發(fa)板(ban)電源讓u-BOOT啟動運行,在啟動倒(dao)數到(dao)0前,按任(ren)意鍵停止系統引導。


輸入u-boot 命令# loadb 0x40008000 /*地址值以在Makefile 中查找(zhao)到的為(wei)準*/
回車
然(ran)后在(zai)串口工(gong)具上選擇(ze)transfer菜單里的send kermit選項(xiang)

選擇文件工程(cheng)中編譯生成的(de) .bin文件;并添加到files to send 列表;然后點擊(ji)OK

等到數(shu)據接(jie)收(shou)完畢后,執(zhi)行 # go 0x40008000 跳轉到下載(zai)代碼位置(zhi)執(zhi)行。
這樣,裸板(ban)程序就可以在開發板(ban)中自動運行(xing)了。
當然(ran)如果覺得頻繁操作這(zhe)兩條命令比(bi)較麻煩;也可以(yi)把它們 添加到 bootcmd啟動命令中。
添加方法:
# setenv bootcmd loadb 0x40008000 \; go 0x40008000
#saveenv
添加完(wan)成后,每次(ci)開(kai)機 u-boot 會自動運行(xing)這個兩條命令,我們只(zhi)要在串(chuan)口(kou)工具中發送編譯好的.bin 文件(jian)即可立即執(zhi)行(xing)。

