什么是.axf文件?

Pra*_*avi 17 c embedded arm

我是新手臂架构,我从事嵌入式软件工作,并试图了解项目二进制文件调试文件夹中的.axf文件.

发现它是链接器在构建过程中生成的arm可执行格式文件,用于调试崩溃.所以很明显它包含一些调试信息,但不清楚它是什么类型的信息?并且调试文件夹中也存在一个.map文件,那么这两个文件之间可能有什么区别?

Cli*_*ord 26

AXF文件是由ARM的RealView编译器(也是Keil的ARM-MDK的一部分)生成的目标文件格式,包含目标代码和调试信息.在调试器中,只有目标代码加载到目标本身上,代码和调试信息都加载到开发主机的内存中.

当通过JTAG,SWD或其他连接调试(任何类型 - 不仅仅是崩溃)时,代码需要在主机上可用,以及将该代码与原始源代码相关联的调试信息.在调试连接上,仅传输诸如寄存器值之类的最小数据,因此例如调试器将获取程序计数器值并且能够使用AXF中的调试数据显示主机上可用的汇编器和源代码.

MAP文件包含一些相同的信息,但它用于人类可读性和消耗而不是机器使用,并且不包含源代码行到源级调试器所需的目标代码关联数据.

大多数情况下你可以忽略它 - 编译器生成它,调试器加载它.您的工具链可能还会生成.hex文件,这是您用于生产编程的文件,仅包含机器代码和常量数据以及初始化程序.

  • (.axf文件是ELF格式,就像更常用的.elf文件一样,并且有DWARF调试信息) (11认同)