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