web-dev-qa-db-fra.com

Que sont les fichiers .axf?

Je suis nouveau pour armer l'architecture, je travaille sur des logiciels embarqués et j'essayais de me renseigner sur le fichier .axf qui est présent dans le dossier de débogage de mon projet binaire.

Découvert qu'il s'agit d'un fichier au format exécutable arm généré par l'éditeur de liens lors du processus de génération et qu'il est utilisé pour déboguer les plantages. Il est donc évident qu'il contient des informations de débogage, mais ce n'est pas clair de quel type d'informations il s'agit? Et il existe également un fichier .map dans le dossier de débogage, alors quelle pourrait être la différence entre ces deux fichiers?

17
Pravi

Le fichier AXF est un format de fichier objet généré par le compilateur RealView d'ARM (qui fait également partie de l'ARM-MDK de Keil) et contient à la fois du code objet et des informations de débogage. Dans le débogueur, alors que seul le code objet est chargé sur la cible elle-même, le code et les informations de débogage sont chargés dans la mémoire de l'hôte de développement.

Lors du débogage (de tout type - et pas seulement de plantages) via JTAG, SWD ou toute autre connexion, le code doit être disponible sur l'hôte avec les informations de débogage qui associent ce code au code source d'origine. Sur la connexion de débogage, seules des données minimales telles que les valeurs de registre sont transférées.Par exemple, le débogueur prendra la valeur du compteur de programme et pourra afficher l'assembleur et le code source disponibles sur l'hôte à l'aide des données de débogage dans l'AXF.

Le fichier MAP contient certains des mêmes informations, mais il est destiné à la lisibilité et à la consommation humaine plutôt qu'à l'utilisation de la machine, et ne contient pas l'association ligne de code source au code objet données requises par le débogueur au niveau source.

La plupart du temps, vous pouvez l'ignorer - le compilateur le génère, le débogueur le charge. Votre chaîne d'outils génère probablement également un fichier .hex qui est ce que vous utiliseriez pour la programmation de la production et contient uniquement le code machine et les données constantes et les initialiseurs.

27
Clifford