Just recently, there were several news around Keil microcontroller tools from Arm: support for Arm Virtual Hardware (AVH), introduction of the MDK-Community edition, and the availability of the Keil Studio Open-Beta. A lot is going on in the software development for microcontroller world.
This blog covers all these questions and gives definitive answers.
Arm Keil MDK has a long history as Reinhard Keil explains it in this podcast. While there has been many editions coming and going, there is a common theme: there are commercial and free editions with new options available especially for the later.
This new edition of Keil MDK replaces the previous MDK-Lite which was free-to-use for non-commercial development but had a code size limit of 32 Kb. In the modern world of beefy software stacks, this is not good enough anymore. Any cloud connectivity stack breaks this barrier easily. You talked, we listened. Here comes MDK-Community: a free-to-use, non-commercial edition of MDK targeted at hobbyists, makers, students, and academics (and for evaluation purposes). It has basically the same features as MDK-Essential (see the following) and does not have any code size limitation. It uses the whole CMSIS eco-system of software delivered in packs and supports CMSIS-RTOS API v2 based real-time operating systems, such as Keil RTX5 or CMSIS-FreeRTOS. Support is available in our vibrant forum.
When to use: if you are developing non-commercial MCU software and need a great IDE and debugger to help achieving your goals.
This is the commerical entry-level offering for professionals. MDK-Essential supports all Cortex-M-based devices (at the time of writing close to 9,500). Using a powerful debug adapter such as a ULINKplus or ULINKpro, you get features like power-aware debugging, performance analysis, execution profiling, and code coverage. You get full access to the incredible Arm Compiler 6, which is LLVM-based and offers superior code size and performance for most microcontroller workloads.
When to use: if you are developing commercial software that needs best code performance and debug capabilities while relying on open-source or third-party software stacks.
This edition adds parts of our MDK-Middleware. With MDK-Plus, you can create projects that need a USB device stack, a file system, graphics, and IPv4-based TCP/IP networking. Note that your device must have CMSIS-Driver support to be able to use it.
When to use: if you need a certain set of middleware, without high-end features.
This is the all-in-one edition that leaves no question marks open. MDK-Professional supports everything of the MDK-Plus edition and adds USB host and IPv6 support, as well as access to our Arm Compiler for Embedded FuSa. This is crucial for projects in the functional safety arena for certification. Also, you have full access to Arm Virtual Hardware which is a great prototyping tool. It enables continuous integration workflows for testing of your software without the need of actual hardware. The good thing is that you can test-drive it for 30 days.
When to use: if you have specific middleware and functional safety requirements.
For Cortex-M0/M0+/M23-based devices from Holtek, Nuvoton, or STMicroelectronics, we offer free editions for commercial use cases. These vendor editions offer the same features as the MDK-Essential edition, just limited to these processors from the silicon supplier.
When to use: commercial (and of course non-commercial) development using Cortex-M0/M0+/M23-based devices from Holtek, Nuvoton, or STMicroelectronics.
This fresh new tool offers the latest development technology. Keil Studio is based on the Theia framework and works with VS code extensions. Currently, an open-beta cloud version is available that is agnostic of your host operating system. You only require a chromium-based browser to debug a target connected to your PC through the browser. Launched from new keil.arm.com web site, it is a great tool to find example code for various cloud service providers running on development boards from different silicon vendors.
While the browser-debugging experience is an absolute novelty in the microcontroller space, it can of course take you only that far. Once you detect problems with a browser-based tool, you have the option to export your project to Keil MDK. This allows you to use a professional IDE to dig deeper into your code. And this also works with MDK-Community as this video shows it.
When to use: for evaluation purposes in an early development phase; when you try to explore different hardware and software options.
Start using MDK-Community