转载http://blogold.chinaunix.net/u3/98575/showart_1961417.html
一、使用的软件与工具:
H-JTAG v0.6.1
CITK2410开发板(带bootloader)
AXD Debugger for ARM Developer Suite 1.2
并口线与JTAG
二、主要的过程:
1)正确连接JTAG线,板子上电
2)安装H-JTAG v0.6.1软件。然后打开H-JTAG,点击 Detect Target。
对于使用s3c2410,执行Detect Target后得到如下结果:
3)打开AXD Debugger, 点击Options-->Configure Target…
①这时出现以下Choose Target对话框:
②接着点击add,增加一个Target Environments.
在安装H-JTAG v0.6.1的目录下有H-JTAG.dll动态链接库,点击增加即可。
③现在发现AXD已经可以正确的显我们开发析的信息。
4)在AXD上点击System Views-->command line interface(ALT+L)
在出现的command line interface窗口中输入以下命令:
Debug >loadbinary C:\u-boot.bin 0x33f80000
Debug >loadsymbols C:\u-boot.axf
Debug >setpc 0x33f80000 |
这里下载到内存的地址为0x33f80000,是根据u-boot中的TEXT_BASE变量设置,这里可以省去调试过程中对地址的转换。在u-boot对应开发板的目录下的config.mk文件中可以找到这个变量。
u-boot.axf是由编译后得到的u-boot直接改名得到的。
也可以将命令按行写到一个文件中,然后使用ob命令执行,这样可以节省时间。
例如可以将以上命令存为一个run.txt的文件,放在D盘。然后在command line interface中输入命令:
所有的命令在GUI里面也是有的,可以利用批处理文件(OB命令)来免去敲命令和点菜单的麻烦
这时就可以在内存中对u-boot调试啦。
三、在调试的过程中,可以先使用crosstool工具arm-linux-objdump将u-boot反编译。
例如,在u-boot的目录下,执行以下命令:
[root@localhost WORK]# /opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-objdump -S u-boot > u-boot.S |
得到的u-boot.S汇编源代码与u-boot符号表System.map结合起来将是跟踪调试过程中的得力助手。
四、附录:
一些用到的命令的解释
LoadBinary = 将一个文件导入SDRAM
LoadSymbols = 导入符号表
SetPC = 设置PC寄存器
Run = 开始运行
OB + 文件名 = 按照批处理文件运行
如果有命令不清楚的话,在命令行下,输入 help ,可以打开帮助文件!
以上的调试方法对于u-boot的第一阶段调试比较好,但对于第二阶段效果就不是太好。
文章评论(0条评论)
登录后参与讨论