はじめに
STM32 VSCodeExtensionが想像以上に便利だったので、これまでCubeIDEで開発していたプロジェクトもVSCodeExtensionに移行しようと思います。詳しいやり方はVSCodeExtension内のUserguideに記載されていました。
ちなみにVSCodeExtensionの導入については以下の記事をご覧ください。
使用環境
- OS : win11
- STM32VSCodeExtension v2.1.1
- STM32CubeMX v6.13.0
- STM32CubeCLT v1.17.0
- テスト用マイコン : stm32f767
テスト用プログラムの作成
今回はテスト用プログラムとしてCubeIDEでLED_testという名前で新たなプロジェクトを作成しました。またmain.cのwhileループ内をLEDが点滅するように以下のように書き換えます。
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
HAL_Delay(100);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
問題なくLEDが点滅することを確認できました。
プロジェクトの移行
では、早速プロジェクトの移行作業をしていきましょう!Userguideによると
- プロジェクトをSTM32CubeIDE/MXで作成し、STM32VSCodeextension 1.0.0で管理していたもの
- プロジェクトをSTM32CubeIDE/MXで作成し、STM32VSCodeextension 1.0.0で取り込んでいないもの
- STM32CubeIDE/MXを使わずに生成したもの
で移行方法が異なるようです。今回は2つ目についてやっていきます。(1つ目でも大まかな流れは同じ用ですが途中削除するファイルが違うようです。)
プロジェクトのアップデート
CubeIDEのバージョンが低い場合、アップデートが必要なようです。STM32CubeIDE v1.15.0かそれより新しいものでプロジェクトを開きビルドとデバッグをしてください。
不要ファイルの削除
プロジェクトとcmakeで再構成する前に不要ファイルの削除を行います。削除前にバックアップを取ることが推奨されていました。不要ファイルは以下の通りです。
STM32CubeIDEで作成し、STM32VSCodeextensionで開いたことがない場合
- .settings/
- .cproject
- .project
以上の3つのファイルを削除します。
STM32CubeIDEで作成し、STM32VSCodeextension 1.0.0で取り込んでいた場合
- .vscode folder
- build folder
- cmake folder
- CMakeLists.txt
- CMakePresets.json
- nvcpkg_configuration.json
以上6つのファイルを削除するようです。
CMakeで作成
STM32CubeMXを使ってCMakeでプロジェクトを生成します。
- STM32CubeMX v6.11.0かそれ以降のバージョンでiocファイルを開きます
- 「migrate」が必要なときmigrateします
- 「project manager panel」を開きます
- 「Toolchain / IDE」を"STM32CubeIDE" から "CMake" に変更
- 「GENERATE CODE」を実行
vscodeにプロジェクトをインポートする
STM32VSCodeextensionから作成したCMakeのフォルダをインポートします。
CMakeLists.txtの編集
自作ファイル等がある場合CMakeLists.txtを編集します。今回は特に変更ありません。
ビルドして書き込んでみる
ここまでできたら新規作成したプロジェクトと同じです!早速書き込んでみましょう。しっかりと書き込むことが出来ました。詳しい書き込み方法は前述の記事をご覧ください。
最後に
CubeIDEからVScodeにプロジェクトの移行が出来ました。CMakeListsの編集が少々面倒ですが、Copilotを利用できるなど移行するだけの価値があると思います。