以u-boot为例介绍如何在MDK下调试elf格式文件

原文出自:http://www.amobbs.com/forum.php?mod=viewthread&tid=4579114


其实RTT的mini2440分支已经实现了这种做法,这里只是扩充了一下


环境:
1.u-boot-1.3.4
2.arm-linux-gcc-4.1.1-920t
3.AT91RM9200

前提:
已经架好samba并映射盘符,而且u-boot-1.3.4放在此盘,一下操作都在windows下

正文:
修改Makefile 增加生成u-boot.axf代码 如图所示

(原文件名:1.jpg)  

现在linux下make就可以生成u-boot.axf了
去http://www.realview.com.cn/down-class.asp下载自己所属的工程例子,因为这些例子可以直接在SDRAM上调试, 例如AT91RM9200 可以下载“基于AT91RM9200的BasicIdle程序”这个例子,S3C2440的可以下载“基于S3C2440的LED程序”.复制xxx.Uv2   xxx.opt 以及Ext_RAM.ini 到u-boot目录下,现在u-boot目录应该有下面文件

(原文件名:2.jpg)  


打开xxx.Uv2 ,把本来的工程文件全部删除并选在外部SDRAM调试.

(原文件名:3.jpg)  

进入选项卡,修改输出文件为当前目录下的u-boot.axf.

(原文件名:4.jpg)  


打开u-boot.map,记录.text 以及 .bss的位置
.text           0x21f00000    0x169bc
.bss            0x21f1c600    0x1d088
修改RO 以及 RW 既是


(原文件名:5.jpg)  
修改为:

(原文件名:6.jpg)   
打开Ext_RAM.ini,把原本的RO BASE(0x20000000)改为新的.text(0x21f00000)
并且修改调试所加载的文件为当前目录的u-boot.axf

(原文件名:7.jpg)  

如无意外,已经可以调试了


(原文件名:8.jpg)  

但是全是汇编,解决方法很简单,就是你想调试哪个文件就将那文件添加进工程.毫无疑问现在应该添加start.S,看图 

(原文件名:9.jpg)  
再把添加board.c添加进去,下断运行.

(原文件名:10.jpg)   
现在就方便多了,在windows下修改文件,然后linux下make,再按一下MDK的Debug按钮.顺心,方便,不折腾,不纠结.
只是介绍了一种方法,希望能起到抛砖引玉的作用,按这个方法也应该调试linux,good luck!

此文pdf:
点击此处下载  ourdev_618725IRD0FN.pdf(文件大小:1.51M)   (原文件名:u-boot.pdf)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值