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