The .VS Code folder contains configuration files for developing InfiniTime with VS Code. Effort was made to have these rely on Environment variables instead of hardcoded paths.
To support as many setups as possible the VS Code configuration files expect there to be certain environment variables to be set.
Variable | Description | Example |
---|---|---|
ARM_NONE_EABI_TOOLCHAIN_PATH | path to the toolchain directory | export ARM_NONE_EABI_TOOLCHAIN_PATH=/opt/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi |
NRF5_SDK_PATH | path to the NRF52 SDK | export NRF5_SDK_PATH=/opt/nRF5_SDK_15.3.0_59ac345 |
We leverage a few VS Code extensions for ease of development.
- C/C++ - C/C++ IntelliSense, debugging, and code browsing.
- CMake Tools - Extended CMake support in Visual Studio Code
Cortex-Debug - ARM Cortex-M GDB Debugger support for VS Code
Cortex-Debug is only required for interactive debugging using VS Codes built in GDB support.
The .devcontainer folder contains the configuration and scripts for using a Docker dev container for building InfiniTime
Using the Remote-Containers extension is recommended. It will handle configuring the Docker virtual machine and setting everything up.
More documentation is available in the readme in .devcontainer
To use the DevContainer configuration on Ubuntu based systems two changes need to be made:
- Modify the file
.devcontainer/devcontainer.json
and add the argument"--net=host"
to the"runArgs"
parameter making the line look like this:"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined", "--net=host"],
- Modify the file
.vscode/launch.json
and change the argument of"gdbTarget"
to"127.0.0.1:3333"
, making the line look like:"gdbTarget": "127.0.0.1:3333",
- To start debugging launch openocd on your host system with the appropriate configuration, for example with a stlink-v2 the command is:
openocd -f interface/stlink.cfg -f target/nrf52.cfg
. This launches openocd with the default ports3333
,4444
and6666
. - In VsCode go to the Debug pane on the left of the screen and select the configuration
Debug - Openocd docker Remote
and hit the play button on the left.