[其他ST产品] 如何在调试期间对SREC进行编程?

[复制链接]
778|14
SocialButterfly 发表于 2025-8-20 14:30 | 显示全部楼层 |阅读模式
本帖最后由 SocialButterfly 于 2025-8-19 23:13 编辑

我的项目需要在编译时对SREC进行一些后处理。我希望加载常规的ELF文件以获取符号,但将SREC写入内存。似乎集成开发环境(IDE)只接受ELF文件,而我无法生成这些文件。如何在启动调试配置时将SREC作为一部分进行编程?使用Segger JLINK Ultra+。

评论

选择合适的工具、配置环境  发表于 2025-8-26 09:05
公羊子丹 发表于 2025-8-26 07:32 | 显示全部楼层
建议先养成在CubeMX里配置的时候就写标签,不然后面代码里很难对上。
周半梅 发表于 2025-8-26 07:33 | 显示全部楼层
你可以在 Debug Configurations 里设置只加载符号表,然后用外部工具把 SREC 烧进去。
帛灿灿 发表于 2025-8-26 07:33 | 显示全部楼层
CubeIDE 默认只认 ELF 没错,但你可以让它加载 ELF 符号,同时在初始化时调用外部 flash 工具。
童雨竹 发表于 2025-8-26 07:34 | 显示全部楼层
我试过的方法是 ELF 用来调试,SREC 用 JLinkExe 下载,两者结合没问题。
万图 发表于 2025-8-26 07:35 | 显示全部楼层
Segger 的 JLink Commander 支持 loadfile xxx.srec, 0x08000000,很适合自动化。
Wordsworth 发表于 2025-8-26 07:37 | 显示全部楼层
你也可以写个 makefile,在 build 完成后自动生成并下载 SREC,再启动调试。
Bblythe 发表于 2025-8-26 07:38 | 显示全部楼层
如果只是为了符号,编译时一定要带 -g,这样 ELF 里才有调试信息。
Pulitzer 发表于 2025-8-26 07:39 | 显示全部楼层
有时候直接在 Debug Configuration 的 “Startup” 脚本里加入 JLink 命令也能解决。
Uriah 发表于 2025-8-26 07:40 | 显示全部楼层
另一种方式是用 Ozone 调试器,它对 ELF 和 SREC 的组合支持更灵活。
Clyde011 发表于 2025-8-26 07:41 | 显示全部楼层
总结来说,流程一般是:用 JLink 工具烧写 SREC → IDE 加载 ELF 符号 → 启动调试。
周半梅 发表于 2025-8-26 07:42 | 显示全部楼层
J-Link 命令行工具支持直接加载 SREC,你可以在调试前加一个 pre-launch 脚本去执行。
tpgf 发表于 2025-8-26 09:05 | 显示全部楼层
Keil MDK:专为Arm处理器设计的完整开发环境,集成项目管理、调试器及仿真工具,尤其擅长处理嵌入式系统的二进制数据格式,适合需要深度调试的场景
星辰大海不退缩 发表于 2025-8-28 22:22 | 显示全部楼层
建议先养成在CubeMX里配置的时候就写标签
您需要登录后才可以回帖 登录 | 注册

本版积分规则

63

主题

63

帖子

0

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