オンラインコンパイラでコンパイルした結果の.binファイル、普段からmbedドライブにコピーしていますが中身は何なのか気になったので調べました。
オフラインコンパイラのBuild Output
オフラインコンパイラのBuild Outputを見ると、fromelfコマンドで.axfファイルから.binファイルを生成していることがわかります。
BuildOutput
*** Using Compiler 'V5.06 update 1 (build 61)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'mbed NXP LPC1768'
compiling main.cpp...
linking...
Program Size: Code=16116 RO-data=1536 RW-data=52 ZI-data=592
After Build - User command #1: fromelf --bin -o build\mbed_blinky_LPC1768.bin build\mbed_blinky.axf
".\build\mbed_blinky.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:01
教えて!Google先生!
".elf .bin"でググると、ELF イメージからプレーンバイナリ形式への変換というページが見つかりました。
各ロード領域に対して 1 つのプレーンバイナリ形式の出力ファイルを生成するには
"プレーンバイナリ形式"。
はて、プレーンバイナリ形式って何だろう?
アドレス0番地からのバイナリデータなのだろうか?
確認
デバッガにSimulatorを選択し、Debug Sessionを開始します。
Memory Windowを表示して、Address=0に。ウィンドウをフローティングにして、幅を16バイトで折り返すよう調整します。
.binファイルの中身と、Memory Windowの値を比較します。
一致しました!