关键字: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 文件即可立即执行。