s37和elf文件之间的差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了s37和elf文件之间的差异相关的知识,希望对你有一定的参考价值。

我使用嵌入式系统。在C源代码构建之后,我得到了很多文件。文件名相同,但扩展名不同:

.s37 .elf .hex .sig

它们之间有什么区别?主要是.s37和.elf之间的区别是什么?

谢谢,L。

答案

这些只是不同的可执行格式。

.s37是SREC format的一个变体,它是ascii / line固定文本,包括hex(二进制)

大多数嵌入式目标中的闪存/上传软件都熟知这种格式。

.elf是一个executable & linkable file,像gcc或其他商业编译器(Windriver,CodeWarrior ......)这样的链接器的产品。

.elf格式很难在嵌入式目标上传,而不首先使用.SREC转换为objcopy。内容的主要区别之一是.elf格式可以包含调试符号,而.srec/.s37不能。

我的猜测是你的工具链完成所有工作:链接:.elf,然后objcopy转换.elf到.s3用于目标上传(如果有的话丢失符号信息,这要求你在目标上调试你的应用程序时保持.elf文件的方便,SREC文件只包含代码和数据,没有调试。

以上是关于s37和elf文件之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

4月13日总结

活动和片段之间有啥区别?

-bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory(代码片段

程序运行之ELF 符号表

片段上的 Mapbox 膨胀视图