我已经在网上搜索过了,特别是avr-gcc网站.我想知道输出文件的结构,源代码的结构,用avr编译.
标准Microsoft .EXE文件的示例:
00h DW Signature word.
"N" is low-order byte.
"E" is high-order byte.
02h DB Version number of the linker.
03h DB Revision number of the linker.有人能告诉我avr-gcc输出文件的结构吗?
谢谢。-MW
编辑:
正如Rev1.0所言,这是Intel-HEX格式。
发布于 2014-02-10 14:17:25
既然你说的是AVR,你可能是指HEX文件的格式?它被编码为英特尔HEX格式。
编辑有关您的问题的评论:
我看到标题中有“数据”字段。那个领域到底是什么?纯粹的集会?
HEX文件的每一行都被称为“记录”。有几种记录。根据记录类型的不同,数据内容有不同的含义。“数据记录”保存实际固件/程序数据。这是最低级别的机器代码,而不是程序集。它准确地表示设备编程后驻留在闪存中的数据。
发布于 2020-01-30 17:09:26
有人能告诉我avr-gcc输出文件的结构吗?
avr只是一个在不同文件和文件格式上调用子进程的驱动程序.例如,编译器正确地读取预处理输入(文本)和写入程序集(文本).
generated读取编译器生成的程序集(*.s,text),并写入目标文件(*.o,ELF32) -- GNU链接器/定位器读取该对象文件,解析对libgcc (*.a,ELF32)等库的引用,并生成最终的可执行文件(ELF32)。
根据加载程序的不同,可以直接使用ELF (例如,与阿夫一起使用)。
如果您想要像AVR所看到的那样的Intex HEX或普通二进制文件,您将通过从ELF32到GNU Binutils的avr-objcopy将它转换成所需的输出。
一般来说,人们希望保持ELF尽可能长,因为像IHEX这样的格式是“愚蠢的”。他们没有其他信息,如符号信息或调试信息,这些格式只用于将程序上传到AVR,但大多数现代工具也理解ELF。
https://stackoverflow.com/questions/21676019
复制相似问题