- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 arm 架构的新手,我从事嵌入式软件方面的工作,并试图了解我的项目二进制文件的调试文件夹中存在的 .axf 文件。
发现它是链接器在构建过程中生成的arm可执行格式文件,用于调试崩溃。所以很明显它包含一些调试信息但不清楚那是什么样的信息?并且debug文件夹中也存在一个.map文件,请问这两个文件有什么区别呢?
最佳答案
AXF 文件是由 ARM 的 RealView 编译器(也是 Keil 的 ARM-MDK 的一部分)生成的目标文件格式,包含目标代码和调试信息。在调试器中,虽然只有目标代码加载到目标本身,但代码和调试信息都加载到开发主机的内存中。
当通过 JTAG、SWD 或其他连接调试(任何类型 - 不仅仅是崩溃)时,主机上需要有代码以及将该代码与原始源代码相关联的调试信息。通过调试连接,只传输最少的数据,例如寄存器值,因此调试器将获取程序计数器值,并能够使用 AXF 中的调试数据显示主机上可用的汇编程序和源代码。
MAP 文件包含一些相同的信息,但它旨在供人类阅读和使用而不是机器使用,并且不包含目标代码的源代码行 源代码级调试器所需的关联数据。
大多数情况下您可以忽略它 - 编译器生成它,调试器加载它。您的工具链可能还会生成一个 .hex 文件,这是您用于生产编程的文件,它只包含机器代码、常量数据和初始化程序。
关于c - 什么是 .axf 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17761328/
我是 arm 架构的新手,我从事嵌入式软件方面的工作,并试图了解我的项目二进制文件的调试文件夹中存在的 .axf 文件。 发现它是链接器在构建过程中生成的arm可执行格式文件,用于调试崩溃。所以很明显
我已经使用 Keil uVision5 为目标 STM32F103VE 创建了一个 hex 文件,但我无法生成 hex。这是错误日志。(我已经彻底搜索了答案): linking... FromELF:
我正在使用 gcc 和 armclang(arm 编译器 6)将几个库编译(并链接)到一个可执行文件 (elf/axf) 中。是否有适用于这两个文件的代码大小分析工具?问题是: map 文件以不同的方
我目前正在 LPCXpresso (eclipse-based) 中开发 C 程序Windows 7 上的工具链,一个带有 gcc 的 IDE,目标是 NXP Cortex M3 微处理器。它提供了一
您好,我正在尝试编译我的程序,但总是出现此链接器错误: .\_build\ble_app_hids_keyboard.axf: Error: L6200E: Symbol UX_captureStar
我是一名优秀的程序员,十分优秀!