MDK-Middleware  Version 7.16.0
Software Components for MDK-Professional and MDK-Plus

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 and making new device support and middleware updates independent from the tools.

MDK Software Packs

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 RTX5 is used by all middleware components for task scheduling.

This documentation describes:

  • : create, save, read, and modify files in storage devices such as RAM, Flash, SD/SDHC/MMC memory cards, or USB memory devices.
  • : create flexible graphical user interfaces (GUIs) for LCD displays (separately available in the software pack).
  • : services, protocol sockets, and physical communication interfaces for creating networking applications.
  • : create USB Device and USB Host applications with standard USB device classes.
  • : describes the board support interfaces that are used by the various example programs.

Software components outside the scope of this documentation are:

  • : the real-time operating system used by all middleware components. RTX is available as part of the software pack.
  • : a software component providing encryption and secure communication for network components. mbed TLS is available as a separate software pack.

Each component is configurable for a wide range of applications and requires the driver interface as described by the standard.

Before using MDK-Middleware, please make sure that your selected microcontroller device offers CMSIS-Driver support.

MDK Editions

MDK-Middleware is available to all users of and . The following table shows the differences in middleware component availability:

Middleware Component MDK-Professional MDK-Plus
File System Available Available
Graphics Available Available
Network (IPv4) Available Available
Network (IPv4/IPv6) Available
Network (SSL/TLS) Available
USB Device Available Available
USB Host Available

Middleware Component Selection

To add the MDK-Middleware components to your project, you need to select the proper MDK edition in the Manage Run-Time Environment window.

Using MDK-Plus, select:

Using MDK-Professional, select:

If you have an MDK-Plus license installed, but select MDK-Pro, you will get an error at compile time.

Supported toolchains

MDK-Middleware libraries are verified to work in μVision projects with the target toolchain set to default Arm Compiler 5 or Arm Compiler 6 versions included in the MDK installer.

When using Arm Compiler 6 with Link-Time Optimization (LTO) enabled, linker errors and warnings might be issued for some symbols in the MDK-Middleware libraries due to known limitations in the toolchain. In such cases the LTO option should not be used.