jerry尧 发表于 2025-5-1 09:00

将 elf 文件转换为 srec 文件

本帖最后由 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-record(SREC)格式时,若工具链(如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 中的破折号,不是标准 --

“” 是中文引号

? 不是等号,也不是空格,可能是中文输入错误
页: [1]
查看完整版本: 将 elf 文件转换为 srec 文件