MicroPython のビルドと転送

micro:bit V1

ここでは micro:bit V1 の MicroPython について説明します。micro:bit V1 用のソースは次のところにあります: bbcmicrobit/micropython

必要となるもの

MicroPython のビルド

MicroPython のビルドには yotta ツールを使います。ビルドの前には準備として Makefile で追加のファイルを生成しなければなりません。ビルドの後には付加データを hex ファイルに追加します。

リポジトリをクローンして、ディレクトリを移動します:

$ git clone https://github.com/bbcmicrobit/micropython

$ cd micropython

micro:bit のターゲットを使うように yotta に設定します::"

yotta target bbc-microbit-classic-gcc-nosd@https://github.com/lancaster-university/yotta-target-bbc-microbit-classic-gcc-nosd

yotta update を実行してリモートアセットを取得します::"

yotta up

makefile を使ってビルドを開始します:

make all

ビルドの結果、 firmware.hexbuild/ ディレクトリに作成されます。このファイルが micro:bit にコピーするものです。

Makefile はソースの特別な前処理を行いますが、これは qstrdefsport.h に新しい隔離文字列を追加する場合のみ必要です。また、Makefile により生成されたファームウェアは build/firmware.hex に置かれます。この他にも便利なターゲットがいくつかあります。

Python プログラムを含んだ MicroPython の用意

tools/makecombinedhex.py を使って、MicroPython ファームウェアにPython スクリプトを結合し、micro:bit にアップロードする hex ファイルを生成できます。

./makecombinedhex.py <firmware.hex> <script.py> [-o <combined.hex>]

出力先オプション(-o)を指定しない場合、スクリプトは stdout に出力します。

tools/hexlify.py を使って、Pythonスクリプトを Intel HEX 形式に変換できます。結果は MicroPython の firmware.hex の最後に連結できます。簡単なヘッダーがスクリプトに追加されます:

./hexlifyscript.py <script.py>

標準入力からもデータを受けつけます。

micro:bit V2

ここでは micro:bit V2 の MicroPython について説明します。micro:bit V2 用のソースは次のところにあります: microbit-foundation/micropython-microbit-v2

リポジトリには MicroPythonファームウェアビルド の履歴も含まれています。

必要となるもの

MicroPython のビルド

リポジトリをクローンして、ディレクトリを移動します:

$ git clone https://github.com/microbit-foundation/micropython-microbit-v2
$ cd micropython-microbit-v2

サブモジュールを更新します:

$ git submodule update --init

次に MicroPython クロスコンパイラをビルドします:

$ make -C lib/micropython/mpy-cross

準備が整ったら、src/ ディレクトリに移動してビルドします:

$ cd src

$ make

ビルドの結果、ファームウェア MICROBIT.hexsrc/ ディレクトリに作成されます。このファイルが micro:bit にコピーするものです。

micro:bit への転送

micro:bit を USB で接続すると MICROBIT という名前の USB マスストレージデバイスとしてマウントされます。この USB ドライブに .hex ファイルをコピーするとmicro:bit に自動的に転送され、プログラムの実行を開始します。