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

[复制链接]
3529|2
 楼主| nicholasldf 发表于 2011-12-25 20:22 | 显示全部楼层 |阅读模式
本帖最后由 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
 楼主| nicholasldf 发表于 2012-1-15 10:40 | 显示全部楼层
现在可以调试了,什么原因?
应该跟自己生成的lib库有关,,如果是源代码形式,,两种地址空间都能正常调试
如果是库形式,,lib库也要根据地址空间编译两份,一份地址空间0-0x80000,另一份地址空间0x8000-0x80000,这样就能正常调试了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

261

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部