Ich bin neu in der Arm-Architektur, arbeite an eingebetteter Software und habe versucht, etwas über die .axf-Datei zu erfahren, die im Debug-Ordner meiner Projektbinärdatei vorhanden ist.
Es wurde festgestellt, dass es sich um eine ausführbare Arm-Formatdatei handelt, die vom Linker während des Build-Prozesses generiert und zum Debuggen der Abstürze verwendet wird. Es ist also offensichtlich, dass es einige Debugging-Informationen enthält, aber es ist nicht klar, um welche Art von Informationen es sich handelt? Und es gibt auch eine .map-Datei im Debug-Ordner, also was könnte der Unterschied zwischen diesen beiden Dateien sein?
Die AXF-Datei ist eine Objektdateiformat wird vom RealView-Compiler von ARM (ebenfalls Teil von Keils ARM-MDK) generiert und enthält sowohl Objektcode als auch Debug-Informationen. Während im Debugger nur der Objektcode auf das Ziel selbst geladen wird, werden sowohl der Code als auch die Debug-Informationen in den Speicher des Entwicklungshosts geladen.
Beim Debuggen (jeglicher Art – nicht nur bei Abstürzen) über JTAG, SWD oder eine andere Verbindung muss der Code auf dem Host verfügbar sein, zusammen mit den Debug-Informationen, die diesen Code mit dem ursprünglichen Quellcode verknüpfen. Über die Debug-Verbindung werden nur minimale Daten wie Registerwerte übertragen, so dass der Debugger beispielsweise den Programmzählerwert übernimmt und anhand der Debug-Daten im AXF den auf dem Host verfügbaren Assembler- und Quellcode anzeigen kann.
Die MAP-Datei enthält etwas der gleichen Informationen, aber sie sind eher für die menschliche Lesbarkeit und den Verbrauch als für die maschinelle Verwendung bestimmt und enthalten nicht die Quellcodezeile zum Objektcode Assoziationsdaten, die vom Debugger auf Quellebene benötigt werden.
Meistens kann man es ignorieren – der Compiler generiert es, der Debugger lädt es. Ihre Toolchain generiert wahrscheinlich auch eine .hex-Datei, die Sie für die Produktionsprogrammierung verwenden würden und die nur den Maschinencode und konstante Daten und Initialisierer enthält.
Ich habe es für dich gegoogelt. <forums.arm.com/index.php?/topic/12786-what-exactly-an-axf-file> hoffe es hilft ein wenig.
– lulyn
20. Juli 2013 um 12:02 Uhr
Danke, den Link habe ich schon gelesen. Aber ich würde gerne wissen, welche Art von Informationen es enthält. Was ist auch der Unterschied zwischen .axf- und .map-Dateien?
– Pravi
20. Juli 2013 um 12:09 Uhr
axf ist die Binärdatei, hat den Maschinencode (und andere Dinge), wie die obige Google-Antwort besagt, dass es sich um einen Wrapper um einen Elf oder AIF handelt. Im Allgemeinen haben Kartendateien nur eine Karte, eine Liste von Adressen, wo die Dinge nach dem Verknüpfungsprozess gelandet sind.
– Oldtimer
20. Juli 2013 um 13:01 Uhr