MicroPython的午睡(74) MicroPythonソースから最新版ビルド

Joseph Halfmoon

別シリーズでラズパイPicoのC/C++SDK環境を復活させたので、その余勢を駆ってラズパイ用のMicroPythonをソースからビルドしてみました。Picoのためというよりは、アイキャッチ画像に並んでいる他機種向けの最新版オブジェクトを得るためです。マイコン毎のフォルダの下にさらに多数のボード毎のポートありです。

※「MicroPython的午睡」投稿順 Indexはこちら

しばらく使えないでいたラズパイPicoのC/C++SDK環境復活の記事が以下に。

(162) ラズパイPico、SDK、開発環境復活、でも全部じゃない

ただし、いつもの「やらかし」で一部のツールがインストールされず、手作業でソースからビルドしなければならなくなりました。今回インストール未で残っていた picotool をビルドするついで?にMicroPythonもソースからビルドしてみよう、と思いたちました。

最近Thony IDEの更新により、ラズパイPico用のMicroPythonは最新版のバイナリと思われるものにインストール済なのです。しかし他機種マイコン用は古かったり、いろいろあるので、MicroPythonの各機種ボード用最新版を自前でビルドできる環境を作っておこうという目論見です。その環境構築の「ビーグル」(モルモットともいう)としてのラズパイPico用MicroPythonであります。

ビルドそのものは以下のRaspberry Pi Picoの公式ドキュメントを読めば、非常に簡単です。

Raspberry Pi Pico Python SDK

以下は手順通りにやってみただけ(ラズパイPico用のC/C++SDKビルド環境はすでにできているのでその部分は省略。)

micropythonのソースのリポジトリをgithubからクローンする。

gilClone

ports/rp2の中で、ラズパイPico用の「サブモジュール」なるものをmakeせよと。みれば mbedtlsとか、tinyusbとかあちこちで目にする者ども。

makeCports

つづいて、mpy-cross(MicroPythonのスクリプトソースを、バイトコードにコンパイルするクロスコンパイラみたなものらしいデス)をビルド。本体より先にビルドしないとならないのは、本体ビルド時にバイトコードにコンパイル済のモジュールを取り込むためみたいっす。

makeCmpyCross

mpy-crossのビルドのおしまいのところが以下に。

makeCmpyCrossEnd

そして最後にMicroPython本体(ラズパイPico用)のビルド。makeMPstart

終了が以下に。makeMPend

すべて、ラズパイPicoの母艦であるRaspberry Pi 4 model B 上で行いましたが、ちょっとお茶を飲んでいる時間くらいで終わりましたです。

ビルドされたMicroPythonのオブジェクトコードを、これまたビルドしたばかりの picotool で調べてみます。MicroPythonBuildResults

MicroPython v1.19.1 とな。なんだ、Thony IDEでインストール済のバージョンと一緒ね、予想通り書き換え不要か。

今度は別なマイコンボード用にビルドを試みないと。

MicroPython的午睡(73) uarrayとuctypesで数値配列のファイル入出力 へ戻る

MicroPython的午睡(75) Linux版MicroPythonビルド、SSH接続 へ進む