今天总算找到一个调试u-boot的方法了。在网上搜索关键字:“AXD调试u-boot”就可以找到很多这样的文章。以下是我参考的几个网页地址:
大概的思路就是用AXD来调试U-Boot,方法很简单。
在Linux下编译u-boot的目录除了生成u-boot.bin文件,还有一个u-boot文件。
将u-boot,u-boot.bin这两个文件复制到Windows下的一个目录下,如 E:u-boot-gdb。然后将 u-boot 重命名为 u-boot.axf。
打开AXD调试程序,如果没有AXD的,则要安装ADS1.2。
按快捷键 ALT+L 键就弹出命令执行窗口:
在命令行中依次输入以下命令:
> loadbinary e:u-boot-gdbu-boot.bin 0x33f80000
> loadsymbols e:u-boot-gdbu-boot.axf
> setpc 0x33f80000
这里,我要简单地说一下为什么把bin文件加载到0x33f80000,而将PC的值也设置为这个地址。是因为在u-boot编译的时候 board/my2440/config.mk 文件中定义了TEXT_BASE = 0x33f80000,也就是指明了u-boot的运行地址是0x33f80000,u-boot从0x0000地址启动之后会将自己复制到 0x33f80000。所以,我们将其加载到这个地址。
在执行setpc 0x33f80000的时候,AXD会弹出一个文件打开对话框,让我们指定start.S文件的路径。
这时候,最好在Windows下有一份u-boot最新的源代码,打开源代码中的 cpu/arm920t/start.S AXD窗口就弹出非常友好的调试窗口了。如果没有u-boot源码,那就只有辛苦一下,AXD会列出汇编代码。
好了,开始我们的u-boot调试这旅吧!!