主题 : 关于eclipse+openocd的调试问题 复制链接 | 浏览器收藏 | 打印
勿在浮沙筑高台
级别: 新手上路
UID: 35854
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2011-01-07
最后登录: 2015-05-12
楼主  发表于: 2011-04-17 21:45

 关于eclipse+openocd的调试问题

用openocd调试的时候一般下载的是elf文件,因为包含了调试信息,也包含了程序的起始地址,下载到内存时只需要load就可以了,openocd会自动下载程序到elf的指定地址,我碰到这样一个问题,makefile里指定程序的起始地址是0x30000000,下载elf文件到内存时,只能下载到0x30000000位置,不能从0x00开始,而CPU是从0x00这个位置开始执行指令的,下载到内存后程序就跑不起来,如果用load_image  xx.bin 0x00,程序是可以跑起来的,但是又不能调试,因为Bin文件里是没有调试信息的,比如韦东山老师的sdram例子,把程序拷贝到SDRAM中运行,更不用说设断点了,地址根本对不上号,比如break _start,这里_start的地址是0x30000000,而程序执行时不会从0x30000000开始,如何调试这样的程序?
勿在浮沙筑高台
级别: 新手上路
UID: 35854
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2011-01-07
最后登录: 2015-05-12
1楼  发表于: 2011-04-19 07:58
看来是绝症了,只能把代码分开调了