SocialButterfly 发表于 2025-8-20 14:30

如何在调试期间对SREC进行编程?

本帖最后由 SocialButterfly 于 2025-8-19 23:13 编辑

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

公羊子丹 发表于 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处理器设计的完整开发环境,集成项目管理、调试器及仿真工具,尤其擅长处理嵌入式系统的二进制数据格式,适合需要深度调试的场景
页: [1]
查看完整版本: 如何在调试期间对SREC进行编程?