STM32 VSCode Extensionとは
参照 : https://newsroom.st.com/media-center/press-item.html/t4536.html
CubeMX, CubeIDEで生成したプロジェクトをVisual studio codeで扱えるようにする公式の拡張機能のようです。
今までは非公式の拡張機能しかなく、環境構築や設定にそこそこ苦労する印象が有りましたが、公式のものですのでそのへんの面倒さはかなり改善されるのではないかと期待しています。
環境
- NUCLEO-F767ZI
- Ubuntu 22.04
導入
まずは以下のツールのインストールが必要です。
- STM32CubeCLT
- STM32CubeIDE
- Embedded Tools
STM32CubeIDEはプロジェクトの生成に必要ですが、導入記事が多いのでここでは省略します。
- STM32CubeCLT
サードパーティ製IDEでCubeIDEのような機能を使えるようにするツールみたいです。(今までこんなのあったっけ)
https://www.st.com/en/development-tools/stm32cubeclt.html からダウンロードします。
Ubuntu22.04なのでSTM32CubeCLT-DEBをダウンロードすればいいんですが、STM32CubeCLT-Lnxのほうがアンインストールが楽そうなのでそちらを選びました。Ubuntuの場合はどちらを使っても大丈夫みたいです。
ダウンロードしてzipファイルを解凍したら、
sudo sh st-stm32cubeclt_1.12.0_14980_20230301_1550_amd64.sh
と入力するとこんな感じの画面が出てきます。
下ボタンをおしてスクロールするとACCEPT / I DO NOT ACCEPTが出てくるのyを押してインストールします。
これでインストール完了です。
-
Embedded Tools
STM32 VSCode Extensionが依存してるVScode拡張機能です。Vscodeの拡張機能欄でEmbedded Toolsと入力してインストールしましょう。 -
STM32 VS Code Extension
上と同様にVscodeの拡張機能欄でSTM32 VS Code Extensionと入力してインストールしましょう。
使ってみる
まずはCubeIDEで適当にプロジェクトを作って保存します。
次に、vscodeを開いて左下のSTM32と書いてある蝶のマークをクリックします。
Import a local projectをクリックして、CubeIDEで作ったプロジェクトをimportします。 .cprojectファイルをクリックしてOpen projectします。(隠しファイルを表示する設定にしないと.cprojectは現れません)
その後、vscodeで開発する用にいくつかファイルが自動生成されます。intellisenseやデバッグの設定もここで自動で生成されます。
これで設定は完了のはずなんですが、このままだと僕の環境だとデバッグでエラーが出ました。
Could not find the path to "ST-Link_gdbserver". Ensure STM32CubeIDE is installed.
ST-Link_gdbserverがうまいこと認識されていないっぽいので、無理やり認識させます。.vscode/launch.jsonを開いて、"debugServerPath"の値を
which ST-LINK_gdbserver
で出力されたパスに書き換えます。
"debugServerPath": "/opt/st/stm32cubeclt_1.12.0/STLink-gdb-server/bin/ST-LINK_gdbserver",
これでデバッグを行うことができます。
右上の三角ボタンを押すとデバッグ構成を選択するという画面が出るので、Launchを選びます。
ここでbuildとflashが行われ、デバッグができるようになります。
参考