Microcontrollers and embedded development
Keil MDK is the most comprehensive software development solution for ARM-based microcontrollers and includes all components that you need to create, build, and debug embedded applications. Software Packs add device support and software components that you can use as building blocks for your application.
MDK-Core is based on µVision with leading support for Cortex-M devices including the new ARMv8-M architecture.
DS-MDK contains the Eclipse-based DS-5 IDE/Debugger and supports 32-bit Cortex-A processors or hybrid systems with 32-bit Cortex-A and Cortex-M.
MDK includes two ARM C/C++ Compilers with assembler, linker, and highly optimized runtime libraries that are tailored for optimum code size and performance.
Software Packs may be added at any time to MDK-Core or DS-MDK making new device support and middleware updates independent from the toolchain. They contain device support, CMSIS libraries, middleware, board support, code templates, and example projects.
A new feature of MDK is the IPv4/IPv6 networking communication stack, extended with ARM mbed software components to enable Internet of Things (IoT) applications.
While MDK is recommended for commercial, off-the-shelf embedded microcontrollers, DS-5 Development Studio is best suited to multicore ARM Cortex-A/Cortex-M application processors and custom SoC designs.
CMSIS - Cortex Microcontroller Software Interface StandardThe ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. Creation of software is a major cost factor in the embedded industry. By standardizing the software interfaces across all Cortex-M silicon vendor products, especially when creating new projects or migrating existing software to a new device, means significant cost reductions.
The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals, real-time operating systems, and middleware. It simplifies software re-use, reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices.