[其他ST产品] 将 elf 文件转换为 srec 文件

[复制链接]
 楼主| jerry尧 发表于 2025-5-1 09:00 | 显示全部楼层 |阅读模式
ar, ASE, TE, TI, ui, DA
本帖最后由 jerry尧 于 2025-7-28 11:24 编辑

我想将 elf 文件转换为具有特定格式的 srec 文件。
我试过在编译后编辑命令行实现:
arm-none-eabi-objcopy.exe -O srec —srec-len=28 —srec-forceS3 “$(BuildArtifactBaseName).elf ?$(BuildArtifactBaseName).s19
生成扩展名为 .s19 的文件,但文件内容为 Intel 十六进制格式。
还试过在“工具设置””窗口中选中标有“转换为 Motorola 。得到的结果相同。生成的文件具有 .srec 扩展名,但文件格式为 Intel 十六进制。
有没有人做过这个转换?

捧一束彼岸花 发表于 2025-5-15 09:13 | 显示全部楼层
正确的转换命令

春日负喧 发表于 2025-5-15 09:16 | 显示全部楼层
对一个简单的ELF文件(如仅包含少量数据的程序)进行转换,排除项目复杂性影响。
温室雏菊 发表于 2025-5-15 09:21 | 显示全部楼层
在将ELF文件转换为Motorola S-recordSREC)格式时,若工具链(如arm-none-eabi-objcopy)生成的文件实际为Intel HEX格式,可能是工具链版本或参数问题

失物招領 发表于 2025-5-15 10:00 | 显示全部楼层
arm-none-eabi-objcopy版本:某些旧版本工具链可能存在格式输出错误。建议升级到最新版本(如ARM GNU Toolchain)。

她已醉 发表于 2025-5-15 13:00 | 显示全部楼层
确保参数--srec-forceS3--srec-len=28的拼写正确(注意是双短横线--而非单短横线-)。

西洲 发表于 2025-5-15 19:30 | 显示全部楼层
检查文件头:Motorola S-record文件应以S开头(如S0、S1、S2、S3),而Intel HEX文件以:开头。
风凉 发表于 2025-5-15 20:00 | 显示全部楼层
.如果objcopy仍无法生成正确格式,可尝试以下工具:srec_cat(来自SRecord工具集)
将爱藏于深海 发表于 2025-5-15 22:46 | 显示全部楼层
其实可以使用python编写简单脚本解析ELF并生成S19(需熟悉ELF结构和S19格式)。
故意相遇 发表于 2025-5-15 23:07 | 显示全部楼层
查阅arm-none-eabi-objcopy的官方文档,确认参数支持情况。
白马过平川 发表于 2025-5-16 06:18 | 显示全部楼层
在另一台机器或不同工具链版本中测试,确认是否为环境问题。也许电脑环境不一样,结果也不一样呢
慢醇 发表于 2025-5-31 18:59 | 显示全部楼层
— 是中文或 Word 中的破折号,不是标准 --

“” 是中文引号

? 不是等号,也不是空格,可能是中文输入错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

70

帖子

0

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