鳥なき里のマイコン屋(162) ラズパイPico、SDK、開発環境復活、でも全部じゃない

Joseph Halfmoon

前回パソコン更新でツール類再インストール。でもそれ以前に気になっていたことがあるのです。ラズパイPico用のC/C++SDKの開発環境です。ラズパイ4を母艦にしていたのですが、ラズパイ4のOSを32ビットから64ビットに変更したときにラズパイPicoの開発環境はインストールしませんでした。メンドイけれどもやらないとな。

※「鳥なき里のマイコン屋」投稿順Indexはこちら

ラズパイPicoのC/C++SDKの開発環境を整えたのは昨年(2021)のGW頃でした。すでに一年半ほど経過しているのでいろいろ更新されているハズ。実際、以下のページへ行ってみると、各種のデータシート、マニュアル類が更新されており、内容もいろいろ追加されているみたいです。いそいそとダウンロードをばいたしました。

Raspberry Pi Pico and Pico W

メンドイ、メンドイと顔を背けていたラズパイPicoのC/C++SDKの開発環境の再構築については、以下のマニュアルを見れば「バッチリ」です。

Getting started with Raspberry Pi Pico

なんだ、インストール用のスクリプトがあるじゃん、

これがあれば一撃だね

メンドイ、メンドイと思って心の中で避けていたのがウソのようです(その時点では。)そのとき、昨年自分で書いた以下の記事をちらっとでも読み返していればその後のメンドさは大幅軽減だったのですが、またやっちまいましたぜ。

鳥なき里のマイコン屋(122) Raspberry Pi 4到着、ラズパイPicoの母艦化

さて、スクリプトの wget の様子が以下に。wget

一撃でダウンロード、実行属性つけて実行、次々と必要なファイルがダウンロードされ、設定されていきます。総計約2.5Gバイトになるらしいので、それなりに時間がかかります。しかけた後は別なことをやっていました。

おや止まっている。見れば、

Failed to clone 'lib/lwip' a second time, aborting

どうもlwipというライブラリを拾ってくるところで落ちて、スクリプトの途中で止まってしまったみたいです。「lwip」light weight IPだっけ?IPのプロトコル・スタック?なぜか記憶の奥底に残るライブラリ名だったのですが。

「とりあえず無くても動くっしょ」という浅はかな考えで、「できたところまでの動作確認」に入ってしまいました。そうです後で昨年の記事を読み返して気づいたのですが、昨年も lwipで止まっていたのです。そのときの対処は、今回よりも合理的でした。lwipを含む extras(追加的なものなので優先度は低いと判断)をパスして、末尾までスクリプトを通してました。今回は昨年よりもダメ。途中のよくわからないところでスクリプトは中断してます。

動作確認は以下の通り。

    1. blinkのビルド …OK、ツールチェーンは問題なさそう。
    2. ラズパイPicoをストレージにして uf2 ファイル書き込み … OK
    3. Hello worldのビルド … OK
    4. ラズパイPicoをストレージにして uf2 ファイル書き込み … OK
    5. minicomでUART通信 … OK
    6. openocd無いじゃん!

あれま、大事な openocdが無いです。これがないとデバッグできません。またopenocd無しではファイル書き込みはuf2をストレージに転送する方法になるので、BOOTSELボタンを押してRESET(スイッチとりつけてあるので楽にはなってますが)しないとなりません。

Getting Startedには、OpenOCDをビルドするための手順も書かれてました。メンドイとブツブツ言いながら、手順通りにリポジトリからソース持ってきて openocdのビルドとインストールを行いました。ノーエラー。

早速 openocdを立ち上げて、SWDの配線経由で blink.elf(デバッグビルド) を書き込んでみます。こんな感じ。

openocdRuns

OpenOCD動いた。よかった。

続いてデバッガです。gdb-multiarch は元からあったのか、ファイル存在してました。早速 OpenOCDをサーバで動かして、gdb-multiarchから接続してみました。OpenOCD側の起動の様子が以下に。openocdServer

gdb側のLoadの様子が以下に。gdbLoad

動きました。なんとかgdb使ってデバッグもできそうだな。

ついでといちゃなんですが、スクリプトがインストールしてくれない、pico-project-generatorもおろしてきました。起動すればこんな感じ。これだね。picoProjectGenerator

でもメンドイ! ここまでやって本日は力つきましたです。また今度。

結局インストールできていなかったもの

結局、スクリプトが途中で止まってしまったことで、まだ以下のツールは未インストールです。

    1. VScode と関連ファイル
    2. picotool
    3. picoprobe

1は、ローカルなラズパイ4環境にVScodeをインストールするものなので、PCからリモートでラズパイ4にVScodeするには余計、ま、無い方がよいか、というところ。でも後でリモートVScodeでC/C++SDKのビルドができることを確かめないと。メンドイぜ。

2は必要になるかもな~。別途、手作業でインストールするしかあるまいなあ。メンドイ。

3は、ラズパイPicoをラズパイPicoの開発プローブとして使うツールです。当方、ラズパイ4をラズパイPicoの母艦にしてSWDデバッグしているので不要かも。1個端折れた。

自分で書いた記録を読まず、なんだかな~、メンドイことになったな~

鳥なき里のマイコン屋(161) 新PCにPlatformIOインストール、STM32でLチカ へ戻る

鳥なき里のマイコン屋(163) RISC-VコアESP32、Arduino2.0で吉例Lチカ へ進む