使用AXD调试u-boot

转自:http://www.amobbs.com/thread-3521744-1-1.html

用ADS(AXD Debugger),实现u-boot的源代码级调试(c语言级)

——————————————————————————————————————————————
如果板子没有网口,在调试U-Boot和uclinux时就没法用gdb调试。

这时只能利用串口和JTAG口进行调试,linux下可以用BDI这个玩意调试,可是BDI非常昂贵,不适合大众需求。

我总结了下,根据我的调试经验,可以用ADS调试linux的程序。

打开AXD,按下 Alt + L ;或者点System Views下Command Line Interface,就可以打开一个命令行:

输入help查看帮助文件。

比较有用的命令如:
LoadBinary = 将一个文件导入RAM   
LoadSymbols = 导入符号表               
SetPC = 设置PC寄存器                      
Run = 开始运行
OB + 文件名 = 按照批处理文件运行

所有的命令在GUI里面也是有的,可以利用批处理文件(OB命令)来免去敲命令和点菜单的麻烦,

以调试u-boot为例,写一个批处理文件放在D盘,文件名为u-boot.txt,内容如下:
loadbinary Y:\u-boot-1.1.4\u-boot.bin 0x00100000
loadsymbols Y:\u-boot-1.1.4\u-boot
setpc 0x00100000
run

打开AXD,按下ALT+L,键盘输入:ob d:\u-boot.txt

那么AXD会自动运行批处理文件内的命令,自动载入u-boot的二进制代码,自动载入符号表,设置指针为0x00100000,并开始运行。

在调试时,最后自己一步步输入命令做

loadbinary简写lb,只能将二进制文件加载到ram中,不能将地址指定到flash中

在loadsymbols之后,等待进度条显示加载完成,将setpc (pc)指到u-boot.bin的加载位置,即可单步调试。

这时ads会提示寻找u-boot的入口文件start.s地址,此时需要手动指定start.s的位置,通常这时可以在linux下建立smaba服务共享,将整个u-boot的文件夹映射成windows下一个盘符,这样就可以指定目录地址了。

在进入c语言代码中后,ads还可能出现提示指定board.c、string.c等其他文件的地址,这都需要手动做。

此后就可以用ads进行c语言级的u-boot源码调试了!

这种方法应该没问题的,因为我实验了很多次了,都成功了,这可是偶找了近一个月才弄清楚的方法..........

同样,这种方法不知道是否可以用在uclinux上调试,正在进行试验。


可以請問為什麼一定要用 ADS 編譯呢?用版子的 Cross-Compiler 不行嗎?還是您希望可以在 ADS 中來單步執行、追蹤 U-Boot,所以想用 ADS來編譯。

用廠商編譯出來的 elf 和 axd 不一樣,所以無法載入做 software level debug,如果你有 ARM RVD 2.2 ,只要在廠商的編譯器中設定 -gdwarf-2 ,將 armboot 更改為 armboot.elf 即可給 RVD "Load Image" 就可以做 Software level debug / trace 了。

必須注意的是因為 GNU 與 ARM 的 assembler 有差異, 所以 RVD
無法解釋 .S file, 但是會有 symbol 在 disassemble 視窗內直接
提供 debug. 而 .C source 可以做 source trace, 第一次會要求
提供檔案, 之後 RVD 自動建立 Source Mapping, 即不需再提供目錄.
為什麼會不知道 source 在哪? 因為 armboot 是在 linux 下面編譯,
所以對應的路徑是參考 linux 下的路徑.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值