Arm Cortex-M development and debugging environment inside a VSCode devcontainer.
- Microsoft .NET 6.0 Runtime Version 6.0.36
- Arm GNU Toolchain Version 13.3rel1
- SEGGER J-Link Software Version 8.10k
- xPack OpenOCD Version 0.12.0-4
- CMake Version 3.31.2
- VSCode Dev Containers extension
- usbipd-win (Windows and WSL parts installed!)
- Include this repo as
.devcontainer
in the root of your project - Connect debug probe
- Select
Dev Containers: Reopen in Container
For CMake projects:
- Upon prompt, select the
GCC x.x arm-none-eabi
CMake Kit.- Alternatively, a toolchain definition file is provided in:
$CMAKE_CONFIGS_PATH/gcc-arm-none-eabi.cmake
.
- Alternatively, a toolchain definition file is provided in:
- Run
CMake: Configure
- Build using
CMake: Build [F7]
Upon first run, an error message may appear in Line 1, Column 1. Try re-running CMake configuration, or run a build. If the file is a .h
header file, it needs to be #include
'd into a C module.
In order to use SEGGER and OpenOCD debug probes within the container, some udev rules need to be installed on the host machine. A setup script has been provided to aid with installation.
-
Run
setup-devcontainer
inside the container -
Close the container, and re-open the work directory on your host
-
Run the
install-rules
script inside.vscode/setup/
on your host machinecd .vscode/setup sudo ./install-rules
To access a serial port inside the devcontainer, use the cu
command as shown below:
cu -l <serial port device> -s <baudrate>
e.g. "cu -l /dev/ttyACM0 -s 115200
".
To close the connection, press RETURN/ESC/Ctrl-C, type "~.
" (tilde, dot) and wait for 3 seconds.
If not stated otherwise, the contents of this project are licensed under The MIT License. The full license text is provided in the LICENSE
file.
SPDX-License-Identifier: MIT