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

来源:互联网 发布:清朝人口知乎 编辑:程序博客网 时间:2024/05/29 16:42

原文出自: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 0