2013-07-20 19 views
11

私はアームアーキテクチャーに慣れていません。私は組み込みソフトウェアを使用しており、私のプロジェクトバイナリのデバッグフォルダにある.axfファイルについて学びたいと思っていました。.axfファイルとは何ですか?

ビルドプロセス中にリンカによって生成され、クラッシュのデバッグに使用されるarm実行形式ファイルであることが検出されました。したがって、デバッグ情報が含まれていることは明らかですが、どのような情報であるのかは不明です。また、デバッグフォルダに.mapファイルが1つ存在するため、これら2つのファイルの違いは何ですか?

+1

私はあなたのためにそれをgoogledしました。 、少し助けてくれることを願っています。 – lulyon

+1

ありがとう、私はすでにそのリンクを読んでいます。しかし、どのような種類の情報が入っているのかを知りたい。 .axfファイルと.mapファイルの違いは何ですか? – Pravi

+6

axfはバイナリファイルで、上記のgoogleの答えがelfまたはaifのラッパーであることを示すように、マシンコード(およびその他のもの)を持っています。一般的に地図ファイルには地図だけがあり、アドレスのリストがあり、リンク処理の後に物事が終了しました。 –

答えて

18

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

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

MAPファイルが同じ情報の一部が含まれていますが、それは人間の読みやすさと消費ではなく、マシンの使用を意図され、ソースレベルデバッガで必要なコード関連データをオブジェクトへソースコードの行が含まれていません。

ほとんど無視することができます - コンパイラはそれを生成し、デバッガはそれを読み込みます。あなたのツールチェインはおそらくプロダクションプログラミングのために使用するもので、マシンコードと定数データとイニシャライザだけを含む.hexファイルも生成します。

+8

(.axfファイルは、より一般的な名前の.elfファイルと同じようにELF形式であり、DWARFデバッグ情報を持っています) – James

+0

@James:はい、これはdwelchによってその質問へのコメントで言及されました。 – Clifford

関連する問題