VSCodeでnRF52840環境を快適に使うためにインクルードパスを通します。
nRF52環境 : nRF5_SDK_15.2.0_9412b96
結論:gistを参考にc_cpp_properties.jsonへコピペすればOK
gist参考にincludePath, browse, definesあたりをコピペしてみてください。
以下、**c_cpp_properties.jsonって何?**って人向け詳細
VSCodeでディレクトリを開いてプロジェクト開始
例えば、以下のディレクトリをVSCodeで開きます。
nRF5_SDK_15.2.0_9412b96/examples/ble_peripheral/ble_app_hids_keyboard
デフォルトでは「定義へ移動」ができない
すると、インクルードパスが指定されていないため include errors detected となります。
ボクがよく使う「定義へ移動」などの操作ができません。
解決するためにインクルードパスの設定をしていきます。
c_cpp_properties.json の includePath 要素を編集
インクルードパスを設定するには .vscode/c_cpp_properties.json を編集します。
c_cpp_properties.json は画面右下ポップアップのConfigurationHelpなどをクリックすると自動生成されます。
ファイルを開くとincludePathの要素があるのでここにパスを羅列していきます。
例
"configurations": [{
"name": "Mac",
"includePath": [
"/path/to/arm-none-eabi/include",
...
],
...
ただ、nRF52環境はディレクトリ毎にインクルードパスを指定しなければならないのでかなりの量のインクルードパスがあります。
ということで、gistにまとめました。
gist内のenv要素は自身の環境に合わせてください。
"env": {
"gccArmPath": "/usr/local/gcc-arm-none-eabi-6-2017-q2-update",
"nrf5SdkPath": "~/Documents/Nordic/nRF5_SDK_15.2.0_9412b96"
},
その他
-
インクルードパスはexample内にあるMakefileを参考にしています
-
参照エラーを少なくするためにdefinesの値がかなり多くなってます。こちら参考。
VS Code c_cpp_properties.json example for arm-none-eabi toochain
https://gist.github.com/kbumsik/52ce3f41a62f2485c3da1a585674e550 -
上記gistの c_cpp_properties.json でも uint8_t など一部参照エラーが取り除けていません
参考URL
USING VISUAL STUDIO CODE FOR NORDIC NRF5 BLE DEBUGGING
https://electronut.in/vscode-nrf52-dev/
VS Code c_cpp_properties.json example for arm-none-eabi toochain
https://gist.github.com/kbumsik/52ce3f41a62f2485c3da1a585674e550