硬汉嵌入式论坛

 找回密码
 立即注册
查看: 815|回复: 4
收起左侧

[其它] Eclipse+jlink调试stm32偏移地址设置

[复制链接]

21

主题

61

回帖

124

积分

初级会员

积分
124
发表于 2023-6-9 10:07:44 | 显示全部楼层 |阅读模式
Eclipse+jlink调试stm32,编写的app起始地址不是0x08000000,而是0x08010000,自己摸索的步骤:


1、.ld链接脚本中,设置FLASH起始地址是0x08010000,大小由256K改为192K
2、Debug Configuration中,设置Executable offset(hex)为0x10000,如下图:


实际调试发现,代码确实已经下载到0x08010000起始地址处(通过Jflash读取flash数据确认),但是debug出现错误,debug信息中,提示pc指针为0xFFFFFFFE,不是正确的地址,如下图,请问有熟悉的大神知道eclipse jlink还有哪没配置好吗?

回复

使用道具 举报

21

主题

61

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2023-6-9 10:38:34 | 显示全部楼层
下载 (7).png

下载 (8).png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107265
QQ
发表于 2023-6-9 15:56:41 | 显示全部楼层
STM32大部分型号,不能直接在地址0x08010000运行代码。对于IDE环境你可以设置个脚本,让PC,SP寄存器设置到这个位置运行。

或者你做个boot程序,优先下载进去,然后才可以调试这个,根本原因是此贴:

【不是问题的问题】为什么STM32的Flash地址要设置到0x08000000
https://www.armbbs.cn/forum.php? ... 9321&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

21

主题

61

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2023-6-12 08:17:23 | 显示全部楼层
eric2013 发表于 2023-6-9 15:56
STM32大部分型号,不能直接在地址0x08010000运行代码。对于IDE环境你可以设置个脚本,让PC,SP寄存器设置到 ...

谢谢版主,已经在eclipse调试选项卡中增加中断向量偏移设置命令:monitor memU32 0xE000ED08 = 0x08010000,现在可以在偏移调试了。

回复

使用道具 举报

56

主题

131

回帖

299

积分

高级会员

积分
299
发表于 2023-11-27 12:06:19 | 显示全部楼层
zhumx 发表于 2023-6-12 08:17
谢谢版主,已经在eclipse调试选项卡中增加中断向量偏移设置命令:monitor memU32 0xE000ED08 = 0x0801000 ...

请问是具体哪个选项卡下添加的这个命令呢?能发个截图吗?我使用jlink调试失败,发了个帖子,能否指导一下?https://www.armbbs.cn/forum.php? ... d=122031&extra=
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-23 20:38 , Processed in 0.379405 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表