以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代码 如图所示
以u-boot为例介绍如何在MDK下调试elf格式文件_第1张图片
(原文件名: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目录应该有下面文件
以u-boot为例介绍如何在MDK下调试elf格式文件_第2张图片
(原文件名:2.jpg)  


打开xxx.Uv2 ,把本来的工程文件全部删除并选在外部SDRAM调试.
以u-boot为例介绍如何在MDK下调试elf格式文件_第3张图片
(原文件名:3.jpg)  

进入选项卡,修改输出文件为当前目录下的u-boot.axf.
以u-boot为例介绍如何在MDK下调试elf格式文件_第4张图片
(原文件名:4.jpg)  


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

以u-boot为例介绍如何在MDK下调试elf格式文件_第5张图片
(原文件名:5.jpg)  
修改为:
以u-boot为例介绍如何在MDK下调试elf格式文件_第6张图片
(原文件名:6.jpg)   
打开Ext_RAM.ini,把原本的RO BASE(0x20000000)改为新的.text(0x21f00000)
并且修改调试所加载的文件为当前目录的u-boot.axf
以u-boot为例介绍如何在MDK下调试elf格式文件_第7张图片
(原文件名:7.jpg)  

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

以u-boot为例介绍如何在MDK下调试elf格式文件_第8张图片
(原文件名:8.jpg)  

但是全是汇编,解决方法很简单,就是你想调试哪个文件就将那文件添加进工程.毫无疑问现在应该添加start.S,看图 
以u-boot为例介绍如何在MDK下调试elf格式文件_第9张图片
(原文件名:9.jpg)  
再把添加board.c添加进去,下断运行.
以u-boot为例介绍如何在MDK下调试elf格式文件_第10张图片
(原文件名:10.jpg)   
现在就方便多了,在windows下修改文件,然后linux下make,再按一下MDK的Debug按钮.顺心,方便,不折腾,不纠结.
只是介绍了一种方法,希望能起到抛砖引玉的作用,按这个方法也应该调试linux,good luck!

此文pdf:
点击此处下载  ourdev_618725IRD0FN.pdf(文件大小:1.51M)   (原文件名:u-boot.pdf)

你可能感兴趣的:(以u-boot为例介绍如何在MDK下调试elf格式文件)