當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > U-BOOT 使用串口運(yùn)行4412裸板程序
U-BOOT 使用串口運(yùn)行4412裸板程序
時(shí)間:2017-11-24 來(lái)源:未知
關(guān)鍵字:u-boot 裸板 串口 uart 調(diào)試 loadb kermit
在我們熟悉硬件平臺(tái)的過(guò)程當(dāng)中,通常會(huì)使用裸板代碼調(diào)試方式進(jìn)行試驗(yàn)驗(yàn)證。常用手段是通過(guò)JTAG+openocd 進(jìn)行GDB端調(diào)試,這種方式可以實(shí)時(shí)觀察代碼對(duì)硬件的影響及代碼的執(zhí)行順序。但是操作相對(duì)比較啰嗦,并且需要借助于jtag連接器。在沒(méi)有jtag的條件下我們可以通過(guò)利用U-boot 的loadb、go命令實(shí)現(xiàn)通過(guò)串口傳輸下載并執(zhí)行裸板代碼。當(dāng)然這樣做的缺點(diǎn)是我們無(wú)法到程序運(yùn)行的細(xì)節(jié)過(guò)程。
首先我們要通過(guò)查看確認(rèn)裸板程序的起始執(zhí)行地址:0x40008000

這個(gè)地址在也可能在后綴名為.lds的連接腳本中設(shè)置

確認(rèn)地址后,我們使用 《超級(jí)終端》 或《SecureCRT》 等支持 kermit傳輸協(xié)議的串口通信工具打開(kāi)與開(kāi)發(fā)板的串口連接。開(kāi)啟開(kāi)發(fā)板電源讓u-BOOT啟動(dòng)運(yùn)行,在啟動(dòng)倒數(shù)到0前,按任意鍵停止系統(tǒng)引導(dǎo)。


輸入u-boot 命令# loadb 0x40008000 /*地址值以在Makefile 中查找到的為準(zhǔn)*/
回車
然后在串口工具上選擇transfer菜單里的send kermit選項(xiàng)

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

等到數(shù)據(jù)接收完畢后,執(zhí)行 # go 0x40008000 跳轉(zhuǎn)到下載代碼位置執(zhí)行。
這樣,裸板程序就可以在開(kāi)發(fā)板中自動(dòng)運(yùn)行了。
當(dāng)然如果覺(jué)得頻繁操作這兩條命令比較麻煩;也可以把它們 添加到 bootcmd啟動(dòng)命令中。
添加方法:
# setenv bootcmd loadb 0x40008000 \; go 0x40008000
#saveenv
添加完成后,每次開(kāi)機(jī) u-boot 會(huì)自動(dòng)運(yùn)行這個(gè)兩條命令,我們只要在串口工具中發(fā)送編譯好的.bin 文件即可立即執(zhí)行。
華清遠(yuǎn)見(jiàn)90+項(xiàng)目獲批!教育部2021最新協(xié)同育人項(xiàng)目名
華清遠(yuǎn)見(jiàn)榮獲2021騰訊教育“年度口碑影響力職業(yè)教育品
華清遠(yuǎn)見(jiàn)受邀參加2021年武漢民辦高校信息學(xué)科合作聯(lián)盟
溫暖同行共創(chuàng)佳績(jī) 2019華清遠(yuǎn)見(jiàn)北京總部年會(huì)大曝光
助力高校AI人工智能學(xué)科建設(shè) 華清遠(yuǎn)見(jiàn)人工智能師資班
華清遠(yuǎn)見(jiàn)受邀參加四川省物聯(lián)網(wǎng)年會(huì),榮獲優(yōu)秀企業(yè)專家
