MDK Middleware
Microcontrollers offer a wide range of peripherals to meet today's embedded design requirements. However, implementing applications that efficiently utilize these interfaces presents software developers with real challenges. Flexible and easy-to-use middleware components are essential to unleash the power of communication and interface peripherals in modern microcontrollers.
MDK middleware components
Arm Keil MDK is a development environment for Arm Cortex-M series microcontrollers which contains everything for creating and testing applications in assembly, C or C++. MDK is split into MDK Core and Software Packs making new device support and middleware updates independent from the tools.

The MDK-Middleware software pack contains components for IPv4 and IPv6 networking, USB Host and Device communication, file system for data storage, and a graphical user interface. The real-time operating system Keil RTX is used by all middleware components for task scheduling.
Each component is configurable for a wide range of applications and requires the driver interface as described by the CMSIS-Driver standard.
Note: Before using MDK-Middleware, please make sure that your selected microcontroller device offers CMSIS-Driver support.