打印
[其他ST产品]

将 elf 文件转换为 srec 文件

[复制链接]
434|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jerry尧|  楼主 | 2025-5-1 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ar, ASE, TE, TI, ui, DA
我想将 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格式,可能是工具链版本或参数问题

使用特权

评论回复
5
失物招領| | 2025-5-15 10:00 | 只看该作者
arm-none-eabi-objcopy版本:某些旧版本工具链可能存在格式输出错误。建议升级到最新版本(如ARM GNU Toolchain)。

使用特权

评论回复
6
她已醉| | 2025-5-15 13:00 | 只看该作者
确保参数--srec-forceS3--srec-len=28的拼写正确(注意是双短横线--而非单短横线-)。

使用特权

评论回复
7
西洲| | 2025-5-15 19:30 | 只看该作者
检查文件头:Motorola S-record文件应以S开头(如S0、S1、S2、S3),而Intel HEX文件以:开头。

使用特权

评论回复
8
风凉| | 2025-5-15 20:00 | 只看该作者
.如果objcopy仍无法生成正确格式,可尝试以下工具:srec_cat(来自SRecord工具集)

使用特权

评论回复
9
将爱藏于深海| | 2025-5-15 22:46 | 只看该作者
其实可以使用python编写简单脚本解析ELF并生成S19(需熟悉ELF结构和S19格式)。

使用特权

评论回复
10
故意相遇| | 2025-5-15 23:07 | 只看该作者
查阅arm-none-eabi-objcopy的官方文档,确认参数支持情况。

使用特权

评论回复
11
白马过平川| | 2025-5-16 06:18 | 只看该作者
在另一台机器或不同工具链版本中测试,确认是否为环境问题。也许电脑环境不一样,结果也不一样呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

18

帖子

0

粉丝