關鍵字:u-boot 裸板 串口 uart 調試 loadb kermit
在我們熟悉硬件平臺的過程當中,通常會使用裸板代碼調試方式進行試驗驗證。常用手段是通過JTAG+openocd 進行GDB端調試,這種方式可以實時觀察代碼對硬件的影響及代碼的執行順序。但是操作相對比較啰嗦,并且需要借助于jtag連接器。在沒有jtag的條件下我們可以通過利用U-boot 的loadb、go命令實現通過串口傳輸下載并執行裸板代碼。當然這樣做的缺點是我們無法到程序運行的細節過程。
首先我們要通過查看確認裸板程序的起始執行地址:0x40008000
這個地址在也可能在后綴名為.lds的連接腳本中設置
確認地址后,我們使用 《超級終端》 或《SecureCRT》 等支持 kermit傳輸協議的串口通信工具打開與開發板的串口連接。開啟開發板電源讓u-BOOT啟動運行,在啟動倒數到0前,按任意鍵停止系統引導。
輸入u-boot 命令# loadb 0x40008000 /*地址值以在Makefile 中查找到的為準*/
回車
然后在串口工具上選擇transfer菜單里的send kermit選項
選擇文件工程中編譯生成的 .bin文件;并添加到files to send 列表;然后點擊OK
等到數據接收完畢后,執行 # go 0x40008000 跳轉到下載代碼位置執行。
這樣,裸板程序就可以在開發板中自動運行了。
當然如果覺得頻繁操作這兩條命令比較麻煩;也可以把它們 添加到 bootcmd啟動命令中。
添加方法:
# setenv bootcmd loadb 0x40008000 \; go 0x40008000
#saveenv
添加完成后,每次開機 u-boot 會自動運行這個兩條命令,我們只要在串口工具中發送編譯好的.bin 文件即可立即執行。