Raspberry pi PICO上 で NUTTX が走るということなので試してみました。
【NuttX】ラズパイPicoにOSをインストールしてみた!
このYoutubeを見ながらインストールしたのですが、makeで躓いて nuttx.uf2 が出来ませんでした。
エラーコードから色々とググったら
NuttX for Raspberrypi pico
この記事にたどり着いた、どうも raspberrypi SDK のバージョンの問題からしいです。
ただ自分はソースコードを修正する技術(力量) は持ち合わせていないのでもっと簡単な方法はないかと、再びググる。
すると NUTTX PICO には PICO SDK のバージョン 1.1.2 が必要とのこと。
つまり最新の PICO SDK には対応していないらしい。
$ git clone -b 1.1.2 https://github.com/raspberrypi/pico-sdk.git
でPICO SDK を インストールし直して 、PICO SDKのパスを設定
$ export PICO_SDK_PATH=<absolute_path_to_pico-sdk_directory>
この後に
nuttxディレクトリに入って
$ make distclean
$ ./tools/configure.sh raspberrypi-pico:nsh
$ make
これで無事に nuttx.uf2 が作られました。
結局
Git HUB apache/incubator-nuttx
このページに書いてある Installation の手順通りで大丈夫みたいです。
次に生成した nuttx.uf2 ファイルの Raspberry pi pico への書き込みですが、BOOTSEL ボタンを押しながらUSBケーブルを接続すると
Raspberry pi pico がファイルドライブとして認識されますので
ドラッグアンドドロップでコピーします。
「nuttx.uf2 をコピーすると Raspberry Pi Pico は自動的に再起動しCOMポートとして認識されるはずなのですが、認識してくれません。
原因は、NuttX for Raspberry Pi Pico では元々 USB がサポートされていなかったために、USB をサポートするには
$ ./tools/configure.sh raspberrypi-pico:nsh
ではなく
$ ./tools/configure.sh raspberrypi-pico:usbnsh
としなければいけませんでした。
再び以下のようにビルドし直しました。
$ make distclean
$ ./tools/configure.sh raspberrypi-pico:usbnsh
$ make
新しく出来た nuttx.uf2 ファイル を書き込んだら無事に COMポートとして認識しました。
Tera Term Proで接続してコマンドがたたけるのを確認しました。
ちなみにボーレートは 115200bps です。
実は最初何も表示されなかったのですが、リターンキーを何度か押さないとダメでした。
後記
Raspberry pi PICO は発売時に購入しましたが、ずっと放置していました。
最近は SONY Spresense の拡張ボードの設計試作が多かったのですが
SPRESENSE SDK でサンプルプログラムを提供して欲しいという要望が有り、SPRESENSE SDK の学習をしていました。
SPRESENSE SDK は NUTTX なので、Raspberry pi PICO でもNUTTX が走ることを知り試してみました。
参考にしたサイト
Git HUB apache/incubator-nuttx
【NuttX】ラズパイPicoにOSをインストールしてみた!
NuttX for Raspberry Pi PicoのUSBデバイスサポート