ファームウェア開発をしているとときどきちょっとバイナリファイルを作りたいときがあります。 そのかんたんな方法を説明します。
echo を使って簡単にバイナリファイルを作成する
ファームウェア開発をしていると、ちょっとしたバイナリファイルを作りたいときがありますよね。よくある方法は、バイナリエディタで作ったり、ちょっと頑張る人ならC言語でプログラム組んだりしますね。
ただ、ちょっとしたバイナリファイルを作成するだけなら bash なら簡単にできますよ。 あの echo や printf コマンドを使うだけです。オプション -en を使えばOKです!
例えば、すべてのbitが1の 4Byteのファイルを作る場合は下記のようにすればOKです。
ちなみにxxd -g1 は1Byteづつ表示するコマンドです。
| |
みんな大好き 0xdeadbeef の場合はこんな感じ。もし「0xdeadbeef について何??」て思った人はこのWikipediaを見てみてくださいね。
| |
最後にもう一つ。ARMっ子ならご存知の、無限ループ命令ですね。
| |
printf を使って簡単にバイナリファイルを作成する
printfをつかえばさらに柔軟にバイナリを生成できます。まずは先程と同じ
0xdeadbeef を生成する場合。%08x というのは8桁の16進数を表示しろという意味です。
| |
%08x を %x とすると、最初が0で始まる値を勝手に0削除してしまうのでNGです。
| |
printf なので10進数でも入力できます。
| |
今度はたとえば100000という10進の値をバイナリにしたいとき。下記のように10進数のまま
printf に渡せばOKです。printf のフォーマッターがいい感じにしてくれます。
| |
もっと長い値を変換したいときも下記のようにすればOK.
| |
以上、ちょっとしたバイナリファイルを簡単に作成する方法でした!