101 lines
2.4 KiB
Markdown
101 lines
2.4 KiB
Markdown
# VS Code Debug Setup
|
|
|
|
Use this guide when the reproduction workspace must be flashable and debuggable in VS Code with ST-Link and Cortex-Debug.
|
|
|
|
## Expected local prerequisites
|
|
|
|
- `STM32CubeCLT` installed locally
|
|
- `marus25.cortex-debug` extension available in VS Code
|
|
- `STM32_Programmer_CLI` on `PATH` or otherwise discoverable by VS Code tasks
|
|
|
|
## 1. `.vscode/settings.json`
|
|
|
|
Keep the active CMake preset on `Debug` and point VS Code to the local CubeCLT root.
|
|
|
|
```json
|
|
{
|
|
"files.associations": {
|
|
"tcp_client.h": "c",
|
|
"lwip.h": "c",
|
|
"ethernetif.h": "c"
|
|
},
|
|
"cmake.configurePreset": "Debug",
|
|
"cmake.buildPreset": "Debug",
|
|
"STM32VSCodeExtension.cubeCLT.path": "C:/ST/STM32CubeCLT_1.19.0"
|
|
}
|
|
```
|
|
|
|
## 2. `.vscode/tasks.json`
|
|
|
|
Provide three tasks:
|
|
|
|
- `CMake: clean rebuild`
|
|
- `CubeProg: Flash project (SWD)`
|
|
- `Build + Flash`
|
|
|
|
Use `${command:cmake.launchTargetPath}` for the download path so the task follows the active target.
|
|
|
|
## 3. `.vscode/launch.json`
|
|
|
|
Create both launch and attach profiles with:
|
|
|
|
- `type: "cortex-debug"`
|
|
- `servertype: "stlink"`
|
|
- `device: "STM32F407ZGTx"`
|
|
- `interface: "swd"`
|
|
- `runToEntryPoint: "main"`
|
|
- `serverArgs: ["-m", "0"]`
|
|
|
|
Point `executable` at the reproduction ELF. For this skill's default example:
|
|
|
|
```json
|
|
"executable": "${workspaceFolder}/build/Debug/BMSv4.elf"
|
|
```
|
|
|
|
Keep all tool paths derived from `STM32VSCodeExtension.cubeCLT.path`:
|
|
|
|
- `serverpath`
|
|
- `stm32cubeprogrammer`
|
|
- `stlinkPath`
|
|
- `armToolchainPath`
|
|
- `gdbPath`
|
|
- `svdFile`
|
|
|
|
## 4. `.vscode/c_cpp_properties.json`
|
|
|
|
Use the CMake Tools provider instead of hardcoded include paths.
|
|
|
|
```json
|
|
{
|
|
"version": 4,
|
|
"configurations": [
|
|
{
|
|
"name": "STM32",
|
|
"configurationProvider": "ms-vscode.cmake-tools",
|
|
"intelliSenseMode": "${default}"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## 5. `.vscode/extensions.json`
|
|
|
|
Recommend, at minimum:
|
|
|
|
- `ms-vscode.cpptools-extension-pack`
|
|
- `ms-vscode.cmake-tools`
|
|
- `marus25.cortex-debug`
|
|
- `mcu-debug.debug-tracker-vscode`
|
|
- `mcu-debug.memory-view`
|
|
- `mcu-debug.peripheral-viewer`
|
|
- `mcu-debug.rtos-views`
|
|
|
|
Add project-specific editor helpers only if they are already part of the source workflow.
|
|
|
|
## 6. Final checks
|
|
|
|
- `cmake --build --preset Debug` succeeds before debugging.
|
|
- VS Code resolves `${command:cmake.launchTargetPath}` to the expected ELF.
|
|
- ST-Link GDB server starts without path errors.
|
|
- Flash task uses the same ELF that the debug configuration launches.
|