Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hex ファイル

.hex ファイルは intel-hex 形式 です。Intel hex はデータのレコードで構成されており、各レコードの先頭にはそのデータを格納するメモリ上のアドレスが含まれます。すべてのデータは hex-ascii でエンコードされています。すべての行は : 文字で始まります。すべての行は、データの整合性を検証するために使用できるチェックサムバイトで終わります。

micro:bit の .hex ファイルは通常、メモリ内の同じ固定位置へのデータ書き込みから始まるため、ツールチェーンによっては、ファイルの最初の行が次のように始まることが予想されます。

:020000040000FA

Universal Hex ファイル

最新のボードリビジョンでは、プロセッサバリアント間の互換性を実現する、Intel-Hex 形式のスーパーセットが導入されています。Universal Hex は、micro:bit V1 と micro:bit V2 の両方のバイナリデータを含むファイルであり、DAPLink が処理して、その micro:bit ボードに関連するデータのみをメモリに書き込める形式になっています。

Universal Hex の hex ファイルは、V1 または V2 のボードで動作します。 この形式を扱っていることを示す明確な目安は、コンパイル済みの .hex ファイルのサイズが約 700Kb ではなく約 1.8Mb になることです。

この形式と、それに関連する詳細な Universal Hex 形式の仕様 を実装するために、Universal Hex JavaScript Library が作成されています。

Universal Hex Creator

すべての micro:bit バリアントをサポートする .hex ファイルを簡単に作成できるように、Universal Hex Creator ツールを作成しました。

このツールは、Universal Hex JavaScript Library をベースにしています。

デバイス間の互換性

Universal Hex 形式は、ボードバリアント間をまたいで利用する際に、ユーザーにとって最良の体験を確保できるように開発されています。V2 ボード上で V1 専用の .hex が検出されるとエラーになりますが、V1 上では V2 専用の hex は何も通知せずに失敗します。これはユーザーにとって非常にわかりにくいため、避けるべきです。

両方のボードをサポートできない場合もあります。たとえば、V2 ボードバリアントのみを対象に設計されたアクセサリなどです。このような場合、どのボードバリアントに hex ファイルを書き込む際にも最良のユーザー体験を確保するために、そのファイルにはボード非互換であることをユーザーに示すエラーメッセージを常に含めるべきです。

V2 専用の hex と組み合わせることで、V2 ボードでは動作する一方、V1 で使用した場合はエラーになる Hex を生成できる スタンドアロンエラー hex を作成しました。

スタンドアロンエラー hex をダウンロード

この例は、ユーザーにとって最悪、最良、および許容可能な(V1 のサポートが不可能な場合の)ケースを示しています。最良のケースは、すべてのボードバリアントをサポートする Universal Hex を提供することです。 Universal Hex エラー 1

これらの例は、Universal Hex を作成するプロセスを示しています。V1 の hex と V2 の hex を組み合わせて Universal Hex を生成できます。V2 ボードしかサポートできない場合は、スタンドアロンエラーを V2 の hex と組み合わせることで、V1 ボード上でサイレントに失敗するのではなく、エラーを出して失敗する hex を生成できます。

Universal Hex 形式V2 専用 Hex 形式
Universal Hex エラー 2Universal Hex エラー 3

両方のボードバリアント向けの .hex ファイルをビルドする場合は、DALV1 と CODALV2 に対応するそれぞれのツールチェーンを使用する必要があります。詳しくは micro:bit runtime を参照してください。

Micropython

最新情報については、Micropython Hex ファイルリファレンス を参照してください。

MicroPython のビルドでは、firmware.hex イメージ(MicroPython の事前コンパイル済みイメージ)を使用し、その末尾に、既知のアドレスにある固定の 8K 領域としてユーザーのスクリプトを追加します。MicroPython が micro:bit 上で実行を開始すると、この固定位置にあるシグネチャを探し、それを使ってスクリプトを実行するか、直接 REPL プロンプトに入るかを判断します。

Microsoft MakeCode Editor

MakeCode Editor によって生成された Hex ファイルには、.hex ファイル内に埋め込みメタデータが含まれています。これは、スクリプトに関するさまざまなデータとソースコードプログラムを含む JSON エンコードされた blob です。これは圧縮されている場合があり、micro:bit のフラッシュメモリ内に格納されます(ただし、フラッシュメモリに空きがある場合に限ります)。ただし、常に .hex ファイル内には含まれています。この埋め込まれたソースコードプログラムにより、生成元のエディターに .hex ファイルをドラッグアンドドロップすると、そのソースプログラムを再び復元できます。

Hex ファイルの読み出し

現在 micro:bit 上にある .hex ファイルを読み出したい 場合は、uBitTool を使用できます。