1. ホーム
  2. c

[解決済み】.axfファイルとは何ですか?

2022-02-16 08:24:03

質問内容

私はarmアーキテクチャの初心者で、組み込みソフトウェアに取り組んでいます。私のプロジェクトのバイナリのデバッグフォルダに存在する.axfファイルについて学ぼうとしていました。

これは、ビルド中にリンカーが生成するアーム実行形式ファイルであり、クラッシュのデバッグに使用されることを発見しました。そのため、デバッグ情報が含まれていることは明らかですが、どのような情報であるかが不明です。また、デバッグフォルダには1つの.mapファイルがあります。この2つのファイルの違いは何でしょうか?

解決方法は?

AXF ファイルは オブジェクトファイル形式 ARMのRealViewコンパイラ(Keil社のARM-MDKの一部でもある)によって生成され、オブジェクトコードとデバッグ情報の両方が含まれています。 デバッガでは、ターゲット本体にはオブジェクトコードだけがロードされますが、開発ホストのメモリにはコードとデバッグ情報の両方がロードされます。

JTAG、SWD、その他の接続を介してデバッグ(クラッシュだけでなくあらゆる種類の)する場合、コードがホスト上で利用可能で、そのコードと元のソースコードを関連付けるデバッグ情報が必要です。デバッグ接続では、レジスタ値などの最小限のデータのみが転送されるため、例えばデバッガはプログラムカウンタの値を受け取り、AXFのデバッグデータを使用してホスト上で利用可能なアセンブラとソースコードを表示することができるようになります。

MAPファイルには いくつか の情報は同じですが、機械的な使用ではなく、人間が読みやすく、消費しやすいように作られています。 ソースコード行からオブジェクトコード ソースレベルデバッガが必要とする関連データ。

コンパイラが生成し、デバッガが読み込むので、たいていの場合は無視できます。 コンパイラが生成し、デバッガがロードします。ツールチェーンは、おそらく量産用プログラミングに使用する.hexファイルも生成し、これにはマシンコードと定数データおよびイニシャライザだけが含まれます。