別シリーズでラズパイ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の公式ドキュメントを読めば、非常に簡単です。
以下は手順通りにやってみただけ(ラズパイPico用のC/C++SDKビルド環境はすでにできているのでその部分は省略。)
micropythonのソースのリポジトリをgithubからクローンする。
ports/rp2の中で、ラズパイPico用の「サブモジュール」なるものをmakeせよと。みれば mbedtlsとか、tinyusbとかあちこちで目にする者ども。
つづいて、mpy-cross(MicroPythonのスクリプトソースを、バイトコードにコンパイルするクロスコンパイラみたなものらしいデス)をビルド。本体より先にビルドしないとならないのは、本体ビルド時にバイトコードにコンパイル済のモジュールを取り込むためみたいっす。
mpy-crossのビルドのおしまいのところが以下に。
そして最後にMicroPython本体(ラズパイPico用)のビルド。
すべて、ラズパイPicoの母艦であるRaspberry Pi 4 model B 上で行いましたが、ちょっとお茶を飲んでいる時間くらいで終わりましたです。
ビルドされたMicroPythonのオブジェクトコードを、これまたビルドしたばかりの picotool で調べてみます。
MicroPython v1.19.1 とな。なんだ、Thony IDEでインストール済のバージョンと一緒ね、予想通り書き換え不要か。
今度は別なマイコンボード用にビルドを試みないと。