WSL+VSCODEでSTM32のコーディングはできるようになったのですが、入力補完・定義表示が出来ないともったいないというか、せっかくVSCODEを使っているのに意味がありません。そこで、C/C++の入力補完の仕方は他で見つかったので参考にして設定してみたところ、STM32関連コードの入力補完・定義表示ができたので簡単ですが、備忘録として挙げてみることにしました。
まずWSLでソースコードディレクトリに移動し、code . でVSCODEを起動します。つぎにctrl+shift+pでコマンドパレットを開きます。続いて、"edit configurations" と入力します。C/C++エクステンションをインストールしていると、中に"C/C++: Edit Configurations (JSON)"があるはずなのでそれをクリック・選択し、jsonファイルを編集します。今回はSTM32F103RCT6のボードが対象でCubeF1ソースが~/stm32/STM32CubeF1にあるのですが、以下のようにしました。
簡単ですが今回は以上です。それでは、Happy coding!!
まずWSLでソースコードディレクトリに移動し、code . でVSCODEを起動します。つぎにctrl+shift+pでコマンドパレットを開きます。続いて、"edit configurations" と入力します。C/C++エクステンションをインストールしていると、中に"C/C++: Edit Configurations (JSON)"があるはずなのでそれをクリック・選択し、jsonファイルを編集します。今回はSTM32F103RCT6のボードが対象でCubeF1ソースが~/stm32/STM32CubeF1にあるのですが、以下のようにしました。
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"~/stm32/STM32CubeF1/Drivers/STM32F1xx_HAL_Driver/Inc/**",
"~/stm32/STM32CubeF1/Drivers/CMSIS/Device/ST/STM32F1xx/Include/**",
],
"defines": [
"STM32F103xE",
],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
なお 参考までに、WSL/Linux上での" ~ "(チルダ・チルドと読みます)は ホームディレクトリのことです。要所はincludePathにパスを指定する時、最後に "/**"を追加することと、definesで必要なdefinesを設定してやる(今回の場合、ターゲットはSTM32F103RCT6だが、defineは"STM32F103xE")ことです。編集が済み保存後、入力補完・定義表示できていればOKです。簡単ですが今回は以上です。それでは、Happy coding!!

コメント
コメントを投稿