MCUとMPU二刀流開発#2

Visual Studio Codeを使ったRaspberry Pi Pico 2 MPU開発
Visual Studio Codeを使ったRaspberry Pi Pico 2 MPU開発

TrustZone対応Cortex-M33コアに変わったRaspberry Pi Pico 2のMCU開発者向けPico 2開発の2回目は、Visual Studio Code(VSC)でソフトウェア開発環境を構築し、最初のプロジェクトを作成します(二刀流開発背景やハードウェアは投稿#1参照)。

※MCU開発者向けPico 2開発とは、MCU開発者の視点でRaspberry Pi Pico 2 MPU開発を記述。
※本稿はMCU開発で使うEclipse IDEとVSCを比較。
※MCUは価格追及型、MPU/SBCは機能拡張型。

Visual Studio Code(VSC)

Visual Studio Codeインストール直後
Visual Studio Codeインストール直後

VSCは、Microsoftが開発したマルチプラットフォーム・多言語対応の新しいコードエディタです。上図英語版エディタへ、拡張機能をインストールして使います。

カスタマイズ性が高く人気の開発ツールです。MCU開発デファクトスタンダードのEclipse IDE代替としても普及し始めています。

MCUとMPUの二刀流開発者は、Eclipse IDEとVSCの2つの統合開発環境を使えることが必要です。そこで、Pico 2 MPU開発環境のVSCを構築します。

先に結論を言うと、見た目は違いますがVSCはMCU統合開発環境Eclipse IDEと殆ど同じ操作です。Eclipse IDEコマンドやViewがVSCにもありますので同じ感覚で操作できます。

※本稿のEclipse IDEとは、例えばブログ掲載中のNXP)MCUXpresso、ST)STM32CubeIDE、ルネサス)e2 studioなどのこと。どれもEclipse IDEをベースにAPI生成ツールが実装済みのMCU開発環境。

Pico 2 MPU開発環境のVSC構築

1. PC(Win/Mac/Linux)へVSCインストール(デフォルト設定でOK)
2. 拡張機能:Japanese Language Packのインストール(お好み言語インストール可能)
3. 拡張機能:Raspberry Pi Picoのインストール(Pico 1/2/W全て共通)

拡張機能のJapanese Language PackとRaspberry Pi Picoのインストール
拡張機能のJapanese Language PackとRaspberry Pi Picoのインストール

拡張機能は、左ツールバー上から5番目の拡張機能アイコンをクリックし、検索窓にキーワード、例えばJapaneseやPicoを入力して選びます。様々な拡張機能候補が表示されますので、概要などを見て適す機能を選びます。インストールをクリックすればVSCへのインストール完了です。

VSCは、結構な頻度で更新されます。左ツールバー一番下の歯車アイコンクリックで更新確認ができます。インストール済みの拡張機能も、歯車アイコンで様々な設定ができますが、デフォルト設定で問題は無いと思います。

このようにVSCは、英語版汎用エディタを開発者がカスタマイズして使います。一方、MCU開発は、デファクトスタンダードEclipse IDEをMCUベンダがカスタマイズし専用化したものを使います。一長一短がありますが、Pico 2 MPUだけでなく幅広い開発にも使えるVSCは人気上昇中です。

Pico 2 MPUのVSC開発準備

拡張機能の日本語表示は、VSC再起動後に有効になります。日本語に変わらない時は、View>Command Palletをクリックし、検索窓にJapaneseなどを入力すると、表示切替えコマンドが判りますので手動切替えができます。

Pico拡張機能インストール後、左ツールバーにMPUアイコンが現れます。これをクリックし、New C/C++ Projectをクリックした画面が、下図です。

拡張機能Raspberry Pi Picoインスト後、New C/C++プロジェクトクリック画面
拡張機能Raspberry Pi Picoインスト後、New C/C++プロジェクトクリック画面

MCU開発者にはお馴染みの開発プロジェクト名やデバッガ設定ができます。面白いのが、RISC-Vコアが選択できる点です。実はPico 2は、Cortex-M33とRISC-Vのディアルコア(!) MPUです。しかし、どちらか一方のみが開発に使えます。本稿は、Cortex-M33を使います。

Featuresは、追加ライブラリです。Pico 2は、機能拡張型MPUですので、SPI/I2Cなどのインタフェース経由でボード機能を拡張するためのライブラリです。

Pico 2サンプルプロジェクト作成

前章のNew C/C++ Project画面で、プロジェクト名や標準入出力(printf)の接続先UART0/USBを選択後、Createクリックで新規プロジェクトが作成できます。しかし本稿は、MCU開発者にお馴染みのサンプルコードから最初のプロジェクトを作成します。

New Project From Exampleでblink_simpleを選択
New Project From Exampleでblink_simpleを選択

New C/C++ Projectの3つ下New Project From Exampleをクリックし、Name欄にblink_simple、Board typeはPico 2を選択します。Locationに適当な保存先を入力し、これ以外はデフォルトでCreateをクリックするとサンプルコード:blink_simple.cが作成されます。

※Name右横▼から様々なサンプルコード選択可能。

最初はDownloading SDK and Toolchainなどがあるため、作成時間がかなりかかります。画面右下のステータスで状況が判ります。また、「作成者を信頼しますか」などの質問が来ることもあります。暫く待っていると、下記blink_simple.cが現れます。

Pico2サンプルプロジェクトblink_simple
Pico2サンプルプロジェクトblink_simple

gpio初期設定後に無限ループを実行し、この中でgpio出力のledを点滅します。MCUのLチカサンプルと同じ構成です。

Pico 2サンプルプロジェクトビルド&デバッグ

下段Compileクリックでビルドされ、サンプルなので成功結果がターミナルViewに示されます。Eclipse IDEと同じ画面構成です。

この後、#1投稿で購入したRaspberry Pi Pico 2、DebugProbeを下図のようにPCとUSB接続します。本サンプルは、UART0は使いませんが接続していても問題ありません。

Rapsberry Pi Pico 2とDebugProbeのPC接続
Rapsberry Pi Pico 2とDebugProbeのPC接続

左ツールバー上から4番目の実行とデバッグ(Ctrl+Shift+D)アイコンをクリックすると、オブジェクトがPico 2へダウンロードされ、変数などが確認できるデバッグ画面に変わります。また、Eclipse IDEデバッグでよく使う続行(F5)やステップインなどのデバッグツールバーも表示されます。これらを使ってデバッグします。

blink_simple以外にも、様々なサンプルプロジェクトがあります。これらでPico 2 MPU理解が進みます。

Summary:MCU開発者のPico 2開発#2

最新MPU Cortex-M33コアRaspberry Pi Pico 2を使い、MCU開発者案件をMPUへも広げること、Eclipse IDE代替可能性のあるVisual Studio Code(VSC)習得を狙った投稿2回目は、以下VSC基本操作を示しました。

  • Pico 2 MPU開発環境VSC構築と開発準備
  • Pico 2サンプルプロジェクトビルドとデバッグ

統合開発環境としてのVSC操作やプロジェクト作成手順は、当然ですがMCU開発環境Eclipse IDEと殆ど同じです。但し、コマンド配置やファイル操作は、専用Eclipse IDEに一日の長があると思います。

VSCメリットは、今後期待されるAI活用プログラミングとの連携が良いことです。生成AI牽引GOMAの一角を占めるMicrosoft製だからです。

VSC基本操作を文章で書いたので長文になりました。端的に言えば、VSC操作は、MCU開発で使うEclipse IDEと同じです。Eclipse IDEで使うアイコンやコマンドはVSC画面内にあります。Pico 2サンプルを数個試せば、VSCにも慣れると思います。

Afterword:Pico 2ピン配置

サンプルコード利用時に役立つRaspberry Pi Pico 2:RP2350ピン配置を示します。本稿blink_simpleサンプルledは、GP25と判ります。また、豊富なSPI/I2Cインタフェースを使ってPico 2 MPUの機能拡張を行うのも判ります。

Rapsberry Pi Pico 2(RP2350)のピン配置
Rapsberry Pi Pico 2(RP2350)のピン配置