Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 什么是.axf文件?_C_Embedded_Arm - Fatal编程技术网

C 什么是.axf文件?

C 什么是.axf文件?,c,embedded,arm,C,Embedded,Arm,我是arm体系结构的新手,我从事嵌入式软件的工作,并试图了解存在于我的project binary调试文件夹中的.axf文件 发现它是链接器在构建过程中生成的arm可执行格式文件,用于调试崩溃。很明显,它包含一些调试信息,但不清楚这是什么类型的信息?调试文件夹中还有一个.map文件,那么这两个文件之间有什么区别呢?AXF文件是由ARM的RealView编译器(也是Keil的ARM-MDK的一部分)生成的对象文件格式,包含目标代码和调试信息。在调试器中,虽然目标本身上只加载了目标代码,但代码和调试

我是arm体系结构的新手,我从事嵌入式软件的工作,并试图了解存在于我的project binary调试文件夹中的.axf文件

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

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

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

映射文件包含一些相同的信息,但其目的是供人阅读和使用,而不是供机器使用,并且不包含源代码级调试器所需的源代码行到目标代码关联数据


大多数情况下,您可以忽略它—编译器生成它,调试器加载它。您的工具链可能还会生成一个.hex文件,用于生产编程,只包含机器代码、常量数据和初始值设定项。

我已经为您搜索过了,希望它能帮上一点忙。谢谢,我已经读过那个链接了。但我想知道它包含什么类型的信息。还有.axf和.map文件之间的区别是什么?axf是二进制文件,有机器代码(和其他东西),正如上面google的回答所说,它是elf或aif的包装器。一般来说,映射文件只有一个映射,一个地址列表,链接过程结束后就在那里。(.axf文件是ELF格式的,就像更常见的命名为.ELF的文件一样,并且有DWARF调试信息)@James:是的,dwelch在对问题的评论中提到了这一点。