GNU の objdumpでCortex-M3やCortex-M4用のARM-v7Mのバイナリを逆アセンブルする方法を調べてみました。
ELFなオブジェクトは下記のコマンドで逆アセンブルできますが、生バイナリのやり方が分かりませんでした。
arm-eabi-none-objdump -D example.o
参考のページを見て、下記コマンドで逆アセンブルできました。
arm-none-eabi-objdump -D -b binary -m arm -M force-thumb example.bin
-b でファイルフォーマットを指定する。
-m でアーキテクチャを指定する
-M でアーキテクチャのオプションを指定する。
force-thumbだと、無理矢理なので上手くいかない部分もあるみたいですが、それなりに逆アセンブルしてくれています。
参考
- objdump doesn't seem to support armv7m architecture
- https://answers.launchpad.net/gcc-arm-embedded/+question/242626