如何在调试期间对SREC进行编程?
本帖最后由 SocialButterfly 于 2025-8-19 23:13 编辑我的项目需要在编译时对SREC进行一些后处理。我希望加载常规的ELF文件以获取符号,但将SREC写入内存。似乎集成开发环境(IDE)只接受ELF文件,而我无法生成这些文件。如何在启动调试配置时将SREC作为一部分进行编程?使用Segger JLINK Ultra+。
建议先养成在CubeMX里配置的时候就写标签,不然后面代码里很难对上。 你可以在 Debug Configurations 里设置只加载符号表,然后用外部工具把 SREC 烧进去。 CubeIDE 默认只认 ELF 没错,但你可以让它加载 ELF 符号,同时在初始化时调用外部 flash 工具。 我试过的方法是 ELF 用来调试,SREC 用 JLinkExe 下载,两者结合没问题。 Segger 的 JLink Commander 支持 loadfile xxx.srec, 0x08000000,很适合自动化。 你也可以写个 makefile,在 build 完成后自动生成并下载 SREC,再启动调试。 如果只是为了符号,编译时一定要带 -g,这样 ELF 里才有调试信息。 有时候直接在 Debug Configuration 的 “Startup” 脚本里加入 JLink 命令也能解决。 另一种方式是用 Ozone 调试器,它对 ELF 和 SREC 的组合支持更灵活。 总结来说,流程一般是:用 JLink 工具烧写 SREC → IDE 加载 ELF 符号 → 启动调试。 J-Link 命令行工具支持直接加载 SREC,你可以在调试前加一个 pre-launch 脚本去执行。 Keil MDK:专为Arm处理器设计的完整开发环境,集成项目管理、调试器及仿真工具,尤其擅长处理嵌入式系统的二进制数据格式,适合需要深度调试的场景
页:
[1]