You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Arm CMSIS Debugger Extension for Visual Studio Code (In Progress)
2
5
3
-
The Arm CMSIS Debugger extension for Visual Studio Code is an extension pack demonstrating how to combine technologies from various open source projects to create a comprehensive debug platform for Arm based IoT solutions.
6
+
The Arm CMSIS Debugger extension for Visual Studio Code is an extension pack demonstrating how to combine technologies from various open source projects to create a comprehensive debug platform for Arm based IoT solutions.
4
7
5
8
Related open source projects are
9
+
6
10
-[Open-CMSIS-Pack](https://www.open-cmsis-pack.org/) of which this extension is part of.
7
11
-[Eclipse CDT Cloud](https://eclipse.dev/cdt-cloud/), an open-source project that hosts a number of components and best practices for building customizable web-based C/C++ tools.
8
12
-[pyOCD](https://pyocd.io/), a Python based tool and API for debugging, programming, and exploring Arm Cortex microcontrollers.
@@ -15,6 +19,7 @@ The Arm CMSIS Debugger extension is actually an [extension pack](https://code.vi
15
19
## Included Extensions
16
20
17
21
The following extensions are included in this extension pack:
22
+
18
23
-[Arm Tools Environment Manager](https://marketplace.visualstudio.com/items?itemName=Arm.environment-manager), an extension that allows to download, install, and manage software development tools using [Microsoft vcpkg](https://vcpkg.io/en/index.html) artifacts.
19
24
-[CDT GDB Debug Adapter Extension](https://marketplace.visualstudio.com/items?itemName=eclipse-cdt.cdt-gdb-vscode), an Eclipse CDT Cloud extension that supports debugging using gdb and any other debuggers that supports the MI protocol.
20
25
-[Memory Inspector](https://marketplace.visualstudio.com/items?itemName=eclipse-cdt.memory-inspector), an Eclipse CDT Cloud extension that provides a powerful and configurable memory viewer that works with debug adapters.
@@ -23,10 +28,11 @@ The following extensions are included in this extension pack:
23
28
## pyOCD Debug Setup
24
29
25
30
- Install `GCC compiler for ARM CPUs` with the `Arm Tools Environment Manager` to get access to a GDB (`arm-none-eabi-gdb`).
26
-
-**Temporary** - should become obsolete with full `*.cbuild-run.yml` support in pyOCD:<br>
31
+
-**Temporary** - should become obsolete with full `*.cbuild-run.yml` support in pyOCD:<br>
27
32
Make sure to set up your CMSIS Pack installation root folder by one of the following methods:
28
33
- Set your system environment variable `CMSIS_PACK_ROOT`.
29
34
- Add the following to your debug launch configuration
35
+
30
36
```
31
37
"environment": {
32
38
"CMSIS_PACK_ROOT": "</path/to/your/pack/cache>"
@@ -41,6 +47,7 @@ The following extensions are included in this extension pack:
41
47
## Additional Extension Functionality
42
48
43
49
This extension contributes additional functionality to more seamlessly integrate the included extensions:
50
+
44
51
- The pseudo debugger types `cmsis-debug-pyocd` and `cmsis-debug-jlink`. These types allow a more seamless integration into the VS Code IDE. However, these are not full debug adapters but generate debug configurations of type `gdbtarget` which comes with the [CDT GDB Debug Adapter Extension](https://marketplace.visualstudio.com/items?itemName=eclipse-cdt.cdt-gdb-vscode).
45
52
- A [debug configuration provider](https://code.visualstudio.com/api/references/vscode-api#DebugConfigurationProvider) for the type `gdbtarget` which comes with the [CDT GDB Debug Adapter Extension](https://marketplace.visualstudio.com/items?itemName=eclipse-cdt.cdt-gdb-vscode). This provider automatically fills in default values for known remote GDB servers when launching a debug session.
46
53
- CMSIS specific launch configuration items for the `*` debugger type, i.e. visible for all debugger types. It depends on the actually used debug adapter type if this information is known and utilized.
@@ -54,6 +61,7 @@ This section describes the contributed pseudo debugger types and their support t
54
61
The `cmsis-debug-pyocd` debugger type allows to add default debug configurations to the workspace's `launch.json` file to debug via GDB and pyOCD. The actually used debugger type is `gdbtarget`.
55
62
56
63
In addition this extension contributes a debug configuration resolver which automatically fills the following gaps during debug launch:
64
+
57
65
- If option `target`.`server` is set to `pyocd`, then it expands this option to the absolute path of the built-in pyOCD distribution.
58
66
- Adds/extends the `target`.`serverParameters` list of `pyocd` command line arguments:
59
67
- Prepends `gdbserver` if not present.
@@ -69,12 +77,15 @@ The `cmsis-debug-jlink` debugger type allows to add default debug configurations
69
77
**Note**: The generated default debug configuration uses `JLinkGDBServer` as `target`.`server` setting. The executable with this name has slightly differing behavior depending on your host platform. It launches a GUI-less server on Linux and MacOS. Whereas a GDB server with GUI is launched on Windows. Please change the value to `JLinkGDBServerCL` to suppress the GUI on Windows.
70
78
71
79
In addition this extension contributes a debug configuration resolver which automatically fills the following gaps during debug launch:
80
+
72
81
- Adds/extends the `target`.`serverParameters` list of `JLinkGDBServer`/`JLinkGDBServerCL` command line arguments:
73
82
- Appends `--port` and the corresponding `port` value if `target`.`port` is set.
74
83
75
84
## Known Limitations
85
+
76
86
- Requires ELF files built with GCC and DWARF5 debug information to operate seamlessly.
77
87
- The shipped pyOCD version accepts the new command line option `--cbuild-run`. But only extracts device and DFP names.
78
88
79
89
## Trademarks
90
+
80
91
Visual Studio is a trademark of the Microsoft group of companies.
0 commit comments