Roadmap
Project management
Project creation and organization
| Feature | Description |
|---|---|
| 🟢 Project creation | Create, open, and manage CMSIS solution projects |
| 🟢 Multi-project solution | Manage multiple related projects within a single CMSIS solution |
| 🟢 Multi-solution workspace | Manage multiple solutions within one workspace (VS Code built-in) |
| 🟢 Target types | Multiple targets (e.g., HW, models) within one solution |
| 🟢 Build types | Multiple build types (e.g., Debug, Release) within one solution |
| 🟢 File groups | Logical grouping of source, header, and library files |
| 🟢 Layer support | Easily retarget hardware connections |
| 🟢 Software components | Manage software components on a project/layer level |
| 🟡 Manage packs | Manage CMSIS-Packs and versions graphically |
| 🟢 Zephyr project support | Build and debug Zephyr-based applications |
| 🟢 Configuration Wizard | GUI-assisted generation and modification of configuration code |
Build system
| Feature | Description |
|---|---|
| 🟢 Integrated build | Based on CMSIS-Toolbox |
| 🟢 Incremental build | Dependency tracking to rebuild only changed files |
| 🟢 Toolchain options | Per-target configuration of compiler, assembler, linker, and debugger |
| 🟢 west support | Build Zephyr projects natively |
Build output and feedback
| Feature | Description |
|---|---|
| 🟢 Map file | Memory map of the image |
| 🟢 Build log | Detailed output of errors, warnings, and build status |
| 🟢 Error navigation | Direct navigation from build messages to source code |
Integration and extensibility
| Feature | Description |
|---|---|
| 🟢 External tools | Invoke third-party tools via configurable commands |
| 🟢 Version control | Excellent integration with Git (VS Code built-in) |
| 🟢 AI coding agents | Integration with third-party coding agents (via VS Code extensions) |
| 🟢 Additional extensions | Use third-party extensions with Keil Studio (VS Code built-in) |
Compiler support
| Feature | Description |
|---|---|
| 🟢 Arm Compiler for Embedded (AC6) | Professional toolchain from Arm |
| 🟢 Arm Toolchain for Embedded (ATfE) | Open-source, LLVM-based toolchain from Arm |
| 🟢 Arm GNU Toolchain (GCC) | Open-source, GCC-based toolchain from Arm |
| 🟢 Clangd support | For comprehensive code completion |
| 🟢 Library generation | Generate libraries using library manager |
| 🟢 Compiler and assembler control options | Interface for configuring compiler flags and options |
Debug
Core debug control
| Category | Debug Features |
|---|---|
| 🟢 Run control | Run, halt, reset, step into, step over, step out |
| 🟢 Breakpoints | Various types of breakpoints |
| 🟡 Watchpoints | Data read/write/access breakpoints (DWT) |
| 🟢 Multi-core | Single GUI for multiple cores in a device |
Register and memory inspection
| Category | Debug Features |
|---|---|
| 🟢 Core registers | R0–R15, PSR, MSP, PSP, CONTROL |
| 🟡 Core peripheral registers | NVIC, SysTick, MPU |
| 🟢 Peripheral registers | CMSIS-SVD decoded peripheral views |
| 🟢 Memory inspection | Configurable memory views |
| 🟢 Memory inspection | Memory access breakpoints |
| 🟢 Memory inspection | Memory window live update |
Source-level debugging
| Category | Debug Features |
|---|---|
| 🟢 Variables | Call stack view |
| 🟢 Variables | Local variable inspection |
| 🟢 Disassembly | Disassembly window |
| 🟡 Disassembly | Sync Disassembly and source |
| 🟢 Variable inspection | Inline variable display |
| 🟢 Variable inspection | Variable hover inspection |
| 🟡 Execution flow | Function call trace |
Real-time and trace features
| Category | Debug Features |
|---|---|
| 🟡 Serial wire output | ITM printf-style output |
| 🟢 Variable tracing | Real-time data watch |
| 🟡 Event tracing | Exception trace |
| 🟡 Event tracing | Interrupt trace |
| 🟢 Sampling | CPU time |
| 🟡 Embedded trace buffer | ETB instruction trace |
| 🟡 Micro trace buffer | MTB instruction trace |
| 🔴 Instruction trace | Embedded trace macrocell |
Component Viewer and Event Recorder
| Category | Debug Features |
|---|---|
| 🟡 Component Viewer | Display and live update |
| 🟡 Event Recorder | Show event information |
| 🟡 Event Recorder | Save/log |
| 🟡 Event Recorder | Event filtering |
| 🟡 Event Recorder | Event statistics |
RTOS awareness
| Category | Debug Features |
|---|---|
| 🟢 RTOS support | Keil RTX5, FreeRTOS, Zephyr awareness |
| 🟢 Thread visibility | Thread list and state display |
| 🟢 Stack usage | Per-task stack usage |
Analysis and visualization
| Category | Debug Features |
|---|---|
| 🟡 Logic Analyzer | Graphical variable and signal display |
| 🟡 System Analyzer | Data trace, core clock, ITM, current/voltage |
| 🟢 Serial monitor | Communication via serial/TCP ports |
| 🔴 Performance analysis | Execution time analysis |
| 🔴 Performance analysis | Function profiling |
| 🔴 Execution statistics | Code coverage |
| 🟡 Execution statistics | Timing statistics (only via Event Recorder) |
Simulation
| Category | Debug Features |
|---|---|
| 🟢 Fast models (FVPs) | Instruction-accurate CPU simulation |
| 🟡 Debug FVPs | Debugging on FVPs |
Note
FVP simulation models are not available in the MDK-Essential edition.
Debug probe support
| Category | Debug Features |
|---|---|
| 🟢 Debug probes | ULINK2/UILNKplus support |
| 🟡 Debug probes | UILNKpro support |
| 🟢 Debug probes | CMSIS-DAP support |
| 🟢 Debug probes | J-Link support |
| 🟢 Debug interfaces | SWD |
| 🟢 Debug interfaces | JTAG |
| 🟢 Debug interfaces | Target detection |
| 🟡 Debug interfaces | Connect configuration |
| 🟢 Flash programming | Flash download |
| 🟡 Flash programming | Flash verification |
| 🟡 Flash programming | Configuration |
Legend
🟢 available
🟡 feature implementation progressing
🔴 investigating for alternative solution