When an Indian product team commits to a new Cortex-M platform, whether it is an automotive body controller in Pune, an infusion pump in Bengaluru, or a factory I/O module in Chennai, one of the earliest decisions is which toolchain will carry the code from the first LED blink through five years of field updates. For a large share of Indian Tier-1 automotive, medical, and industrial OEMs, that decision has been Arm Keil MDK-Professional, purchased through Arm’s authorized partner in India for Arm Development Tools, GSAS Micro Systems. This article unpacks why MDK-Professional (and the related MDK-Plus tier) is still the commercial default for serious Cortex-M product work in India, what the stack actually contains, and how to think about tier selection when you are building a programme plan.
The commercial tiers: MDK-Essential, MDK-Plus, and MDK-Professional
Arm Keil MDK is sold as a family of commercial subscriptions, not a single SKU. The three commercial tiers Indian teams should know are MDK-Essential, MDK-Plus, and MDK-Professional. Each tier includes the core toolchain, Arm Compiler 6 (armclang), µVision, Keil Studio, the CMSIS-Pack ecosystem, the CMSIS-RTOS2 RTX5 kernel, and the debug integration, but they differ in what middleware is bundled, what the compile-size ceiling is, and what the support entitlement looks like.
MDK-Essential is the entry-level commercial seat. It enables unrestricted code size for Cortex-M development and the core IDE and compiler toolchain, without bundling the full MDK-Middleware library. It is a reasonable fit for a team that is writing its own bare-metal or RTOS firmware, brings its own networking or filesystem, or is working in tightly constrained code spaces where the team prefers to own every line.
MDK-Plus adds the MDK-Middleware bundle, file system, networking, USB, so that a team targeting an industrial gateway, a connected sensor, or a USB peripheral does not need to shop for third-party libraries. This is the tier that most Indian industrial and connected-device teams land on, because it collapses the “toolchain + middleware + RTOS” procurement into a single licence line and a single support contact.
MDK-Professional is the top commercial tier. It includes everything in MDK-Plus and adds the highest support entitlement and the commercial terms typically needed for programmes running against long-lived safety, automotive, or medical standards. Indian OEMs selecting MDK-Professional are usually doing so because they need the full support contract, long-term toolchain stability, and the ability to pair MDK with Arm’s safety-qualified compiler packages. (We specifically do not cover MDK-Community in this article, this post is about commercial product development on commercial licences.)
Inside the MDK stack: µVision, Arm Compiler 6, and CMSIS
The heart of MDK is a small set of tools that have been refined against one another for two decades.
µVision is the classic Keil IDE, project manager, source editor, peripheral viewer, debugger, and trace window in one Windows application. For most Indian production firmware teams, µVision remains the workhorse: project files are stable, peripheral simulation is deterministic, and debug sessions behave the same on a junior engineer’s workstation in Hyderabad as they do on a principal engineer’s rig in Bengaluru. µVision is not a legacy tool; it is the path that most existing MDK projects run on, and Arm continues to maintain it alongside Keil Studio.
Arm Compiler 6 (armclang) is the LLVM-based C/C++ compiler included with every commercial MDK tier. It replaced the older Arm Compiler 5 (armcc) and is the Arm-curated toolchain for Cortex-M, Cortex-R, and Cortex-A targets. Because it is built on LLVM, engineers get a modern front end, good C++17/C++20 support, and predictable optimisation flags, while Arm owns the code-generation quality for every Cortex-M variant, Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33, Cortex-M55, and Cortex-M85. For teams working against MISRA C:2012, Arm Compiler 6 gives a single supported toolchain where diagnostic behaviour, header layout, and language-level configuration are all documented by the vendor.
CMSIS: the Common Microcontroller Software Interface Standard, is the cross-vendor software layer that every MDK project consumes, whether the engineer knows it or not. CMSIS-Core provides the Cortex-M HAL (startup, core register access, SysTick, NVIC). CMSIS-DSP provides a production-grade signal processing library (FIR/IIR filters, FFTs, matrix math) optimised for Cortex-M4/M7 DSP extensions and Cortex-M55/M85 Helium. CMSIS-NN provides quantised neural network kernels for low-footprint inference on Cortex-M and pairs with the Arm Ethos-U microNPU where present. CMSIS-Driver defines vendor-neutral peripheral driver APIs (I2C, SPI, USART, Ethernet, USB). CMSIS-RTOS2 is the RTOS abstraction layer that RTX5 and Arm’s ported FreeRTOS both implement. CMSIS-Pack defines the packaging format that makes adding silicon vendor support, STM32, NXP, Renesas, Nordic, Infineon, Silicon Labs, TI, Microchip, a one-click operation inside µVision or Keil Studio.
MDK-Middleware and RTX5: one vendor, one support contact
MDK-Plus and MDK-Professional bundle the MDK-Middleware library. Indian teams use this bundle heavily because it sidesteps the integration cost of wiring third-party libraries together.
The File System component is a FAT file system with drivers for SD/MMC, USB mass storage, and RAM disk. The Network component is a full TCP/IP v4/v6 stack with HTTP/HTTPS client and server, DHCP, DNS, SMTP, SNMP, Telnet, FTP, and a BSD-style sockets API, with TLS provided by mbedTLS. The USB component includes both host and device stacks with HID, mass storage, CDC, audio, and printer class drivers. All of these components are written against CMSIS-Driver, which means the same middleware runs across silicon vendors with only a driver-level reconfiguration.
RTX5 is the CMSIS-RTOS2 reference implementation shipped with MDK. It is a deterministic preemptive RTOS with full Event Recorder integration, meaning that every thread state change, ISR entry, and object operation can be captured with nanosecond timestamps and replayed inside µVision or Keil Studio. For Indian teams writing medical alarms, automotive diagnostics, or industrial motor control, that visibility is the difference between guessing at a timing bug and proving it.
Historically MDK-Middleware also included a graphics component; today Indian teams typically source embedded graphics from SEGGER emWin or a third-party library and integrate it into the MDK project as a separate pack. That does not change the licence. It just reflects where the graphics ecosystem has landed.
Why Indian Tier-1 OEMs stay on MDK for commercial production
The case for MDK on an Indian commercial Cortex-M programme is rarely about raw compile speed. It is about four things that matter over the life of a product.
First, code density and MISRA readiness. Arm Compiler 6 is tuned by Arm for every Cortex-M core, and the diagnostic surface is documented against MISRA C:2012 in a way that makes static-analysis traceability straightforward. For Indian medical and automotive teams subject to external audit, having a vendor-supported compiler with documented MISRA behaviour is a real procurement advantage.
Second, tool qualification and functional safety. Arm sells qualified versions of the compiler and runtime, Arm Compiler for Embedded FuSa and Arm FuSa RTS, that slot into the same MDK workflow for ISO 26262 (automotive) and IEC 61508 (industrial) programmes. Indian OEMs supplying ECUs into European and Japanese automotive primes, or medical devices against IEC 62304, can pair MDK-Professional with those qualified packages and document a single, auditable toolchain rather than a Frankenstein of open-source components glued together.
Third, µVision determinism and the debugger. Firmware engineering rewards tools that behave the same way on every workstation. µVision’s debugger, peripheral viewer, Event Recorder, and Execution Profiler are deterministic across engineers and across years, a ten-year-old MDK project can be opened on a current MDK seat and will behave predictably, because the toolchain is vendor-managed.
Fourth, single-vendor accountability. When an Indian automotive Tier-1 goes into an issue-resolution window with a global OEM customer, the procurement conversation rewards “we use Arm Keil MDK-Professional, supported by Arm’s authorized partner in India for Arm Development Tools” over “we integrated six open-source components that we support ourselves”. The licence cost is a rounding error against the engineering hours saved when a support case can be escalated directly into Arm.
Silicon coverage: STM32, NXP, Renesas, Nordic, Infineon, Silicon Labs, TI, Microchip
A practical check any Indian programme manager should run: does my silicon vendor’s Cortex-M part have a first-class CMSIS-Pack? For the vendors Indian teams actually design with, the answer is yes across the board. MDK supports STM32 F4/F7/H7/U5/H5 families from STMicroelectronics; NXP LPC, i.MX RT crossover MCUs, and Kinetis; Renesas RA and the Synergy platform; Nordic Semiconductor nRF52 and nRF53 for Bluetooth Low Energy and Thread/Matter; Infineon PSoC 6 and XMC; Silicon Labs EFM32; Texas Instruments MSP432, TM4C, and SimpleLink; and Microchip SAM. Each of these is available as a CMSIS-Pack that pulls in device headers, startup files, flash algorithms, and SVD peripheral descriptions, so adding support for a new part on an existing MDK project is a package-manager operation, not a porting exercise.
Debug probes and the trace story
MDK’s debug story is tightly integrated with Arm’s ULINKplus and ULINKpro probe family. ULINKplus offers JTAG/SWD debug with integrated current measurement and SWV trace. ULINKpro and ULINKpro D add streaming ETM instruction trace for Cortex-M that support it, which is the capability most Indian motor-control, power-electronics, and safety-critical teams reach for when a hard-fault is intermittent and a logic analyser is not enough. Both probes are fully supported in µVision and Keil Studio, and the Event Recorder and Execution Profiler views render trace data in a form that matches the source code and the RTX5 thread model.
How to choose a tier for your programme
For an Indian team scoping a new Cortex-M product, the tier decision usually collapses to three questions. Do you need the MDK-Middleware bundle (file system, networking, USB) integrated and supported by the same vendor as the compiler? If yes, start at MDK-Plus. Do you need the highest support entitlement, qualified compiler packages, and the ability to document a single vendor toolchain for an external safety audit? If yes, step up to MDK-Professional. Are you running a pure bare-metal or custom-RTOS firmware where you supply your own stack and middleware? MDK-Essential may be enough. In all three cases, you are buying into the same underlying toolchain, the tier decision is about middleware and support, not about compiler quality.
Further reading
- Arm Keil MDK product page on GSAS
- Arm partner page, Indian availability, training, and engineering support
- ULINKplus debug probe for MDK debug and SWV trace
- Automotive solutions and Industrial automation solutions from GSAS
- Medical electronics solutions, Cortex-M for medical device programmes
- Arm Keil MDK overview on keil.arm.com
- Arm Compiler for Embedded documentation on developer.arm.com
Indian Cortex-M product teams have spent a decade building institutional knowledge around Arm Keil MDK, from the µVision debug muscle memory of senior engineers in Bengaluru, to the compiler qualification files on a medical programme in Chennai, to the CMSIS-Pack library that an automotive Tier-1 in Pune reuses across ECU families, to the RTX5-based gateway firmware shipped from Hyderabad, to the USB/Ethernet middleware that powers industrial HMIs in Mumbai, to the IEC 61508 audit binders maintained by a controls team in Delhi NCR. GSAS Micro Systems is Arm’s authorized partner in India for Arm Development Tools for MDK-Essential, MDK-Plus, and MDK-Professional licences, MDK training, and on-site enablement, talk to our team when you are scoping your next Cortex-M programme.
Interested in Arm tools?
Talk to our application engineers for personalized tool recommendations.
More from Arm
View all →