打印

应用程序在0x8008000地址开始,无法调试?

[复制链接]
2864|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 nicholasldf 于 2011-12-28 19:22 编辑

我的bootloader占用了0x8000000-0x8008000共32K空间,
应用程序从0x8008000地址开始,程序下载到FLASH的0x8008000之后,可以正常运行的。
但是在MDK+JLINK无法调试调试程序时,MDK调试界面不正常,“运行、单步、停止”那些按钮无效。把应用程序开始地址改为默认的0x8000000是可以正常调试的。

我现在调试程序都是把应用程序开始地址设置在0x8000000地址处的。要编译bin文件的程序就得改一下向量表偏移地址0x800和地址空间0x8008000-0x800FFFF,比较麻烦,

如果应用程序定位到0x8008000,就能像在0x8000000那样可调式就好了,,。
沙发
nicholasldf|  楼主 | 2011-12-28 19:16 | 只看该作者
这个有人知道吗?
我现在的解决方式是有两个工程设置,,第一份应用程序是从0x8000000开始,用于调试用,,,第二份是从0x8008000开始,,编译产品实际用的程序,如下图:

2.JPG (90.81 KB )

2.JPG

使用特权

评论回复
板凳
nicholasldf|  楼主 | 2012-1-15 10:40 | 只看该作者
现在可以调试了,什么原因?
应该跟自己生成的lib库有关,,如果是源代码形式,,两种地址空间都能正常调试
如果是库形式,,lib库也要根据地址空间编译两份,一份地址空间0-0x80000,另一份地址空间0x8000-0x80000,这样就能正常调试了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

261

帖子

10

粉丝