【Raspberry Pi Pico】新規プロジェクトの作成/VS Codeでビルド

とりあえずサンプルプログラムのビルドと動作確認ができたので、新規プロジェクトを作成してVS Code(今回インストールしたVisual Studio Community 2019ではなく、既ににインストールしたあったもの)でビルドする方法を探りました。 途中何度かエラーがでて同じことをやり直している(つもりの)内にいつの間にかうまくいくようになったので、手順に抜けがある可能性が高いですが、きょう一日の作業の記念にメモしておきます。

基本的な手順は Getting started with Raspberry Pi Pico の Chapter 7. Using Visual Studio Code と Chapter 8. Creating your own Project の通りです。

1. プロジェクトフォルダの作成

適当なところにプロジェクトフォルダを作ります。今回は、pico-sdkとpico-examplesと同じところにProjectフォルダを作成して、その中に新規プロジェクト用にtestフォルダを作成しました。

2. 必要なファイル

今回はサンプルプログラムのblinkを新規フォルダに移してビルドします。

  1. サンプルのblink.cを作成したtestフォルダにコピーしてtest.cにリネーム
  2. pico-sdk/external にある pico_sdk_import.cmakeをtestフォルダにコピー
  3. 以下の内容でCMakeLists.txtをtestフォルダに作成  
cmake_minimum_required(VERSION 3.13)
include(pico_sdk_import.cmake)
project(test_project C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
pico_sdk_init()
add_executable(test
        test.c
        )
pico_add_extra_outputs(test)
# Pull in our pico_stdlib which pulls in commonly used features
target_link_libraries(test pico_stdlib)

ファイルの構成は以下のようになります。

raspi_pico
├─ Project
│   └─ test
│       ├─ CMakeLists.txt
│       ├─ pico_sdk_import.cmake
│       └─ test.c
├─ pico-examples
└─ pico-sdk

3. VS Code拡張機能のインストール

VS Codeを起動して2つの拡張機能をインストールします。

  1. C/C++ (ms-vscode.cpptools)
    ※これはすでに入ってたっぽい
  2. CMake Tools (ms-vscode.cmake-tools)

インストール後にVS Codeを一旦終了。

4. ビルド

  1. Windowsメニューから「Visual Studio 2019 > Developer Command Prompt for VS2019」を選択。コマンドプロンプトcodeを実行してVS Codeを起動します。(←これ重要。普通にVS Codeを起動すると失敗します)
    ※ 私の環境では export PICO_SDK_PATH=/home/pi/pico/pico-sdk は必要ありませんでした
  2. VS Codeの「ファイル > フォルダーを開く...」でtestフォルダを開きます。
  3. 開いたときかビルドするとき辺りでキットを選択するメニューが現れるので「GCC for arm-none-eabi 10.2.1」を選択。
    ※ウィンドウの一番下に「アクティブなキットがありません」と表示されていれば、これをクリックしても選択メニューが現れます
  4. 「表示メニュー > コマンドパレット... > CMake:ビルド」を選択。
    ※ウィンドウの一番下の「ビルド」をクリックでも同じ
  5. testフォルダ内にbuildフォルダが生成されているので、その中のtest.uf2を例の手順でpico本体にコピー

ソースを編集したら、あとは4、5の繰り返し

所感的な

以上が現状うまくいっている方法ですが、 最初はエラーとか警告が出てビルドできなくて、コマンドラインでビルドしてみたり、 何かの設定をいじったり(何かやったようなぼんやりとした記憶)、 ファイルの内容を書き換えたりしているうちに いつの間にかうまくいくようになっており…

もやもやしたものは残るもののビルドまでVS Code でできるようになったので、あとはUSBケーブルを抜き差しする例の面倒なプログラム更新の手順を簡単にしたいですね。 Chapter 5. の Flash Programming with SWD あたりを試してみようかなと思いつつ力尽きたのです。

コマンドプロンプトからVS Codeを起動するあたりも環境変数あたりをどーにかすればどーにかなるのかなと。

リセットボタンの追加ビルド後のファイルコピーの自動化でだいぶ楽になりました