KEIL MDK Editions and Versions

A few days ago, I contacted KEIL sales to check, if there are other versions at different price-points that may be interesting for me to buy (or download), because the full version is a bit to expensive. Could be interesting for others as well. Here the answer I got:

My question to the experts here (regarding firmware compilation):

Is it possible to run NETMF firmware on a Cortex M0/M0+ ? If yes, which board are you using?

1 Like

No, not (yet) possible, if ever.

Doesn’t NetMf require an FPU ?

@ Simon from Vilnius @ PiWi -

I knew it. To be honest, I am a bit pi**** about this. Looking frequently at the NETMF source and trying to compile firmware using an open-source tool-chain - never works. And I am unable (maybe because I don’t understand) to identify any efforts from the .NET team to enable compilation using open-source tool-chains. They offer GCC buld-batch files - but those don’t work (or still don’t work) for any of the firmware projects. Frustrating.

Does someone know if the MDK CAN, USB host, USB Device, TCP/IP, GUI, Flash etc. middleware libs are required as well ?

Or is all covered by the CMSIS binaries ?

I recon they use this for NetMf 4.4, at least has got the same name ?

@ PiWi - Those libraries are not required to compile NETMF. The middle ware libraries are provided in binary form with the professional edition and source code with versions that cost even more.

The Keil pricing makes my eyes water too, but it’s not out of line with a Xamarin subscription or a retail MSDN subscription (though admittedly, MS goes out of its way to help you avoid those fees with programs like Bizspark and community editions). None of this stuff is for my ‘day job’ so I am going to have to add the cost of roses, dinner and dancing to the price.


Maybe there is the change of grouping this together and ask for a little volume pricing … I definately am interrested … to a certain price extend …

The constraints that necessitated using MDK in the first place are no longer really valid. GCC produces code much more in line with what MDK produces, and chips with much more flash are now available.

Instead of buying MDK, we’d be better served hiring someone to work out the GCC build. I believe, however, there are working GCC ports floating around. CW2 might be involved in one, and there’s one that originated here, as well.


I’m surprised they didn’t mention the cut down version of MDK they provide with a lot of vendors development kits. TI has some really capable Cortex M3 and M4 (they also have ARM9, A8, A9 and A15) processors that I’d love to see .Net Micro running on. For example

DK-TM4C123G Evaluation board | and DK-TM4C129X Development kit |

and it comes with

[quote]Development package with example source code:
Texas Instruments’ Code Composer Studio™ IDE
Keil™ RealView® Microcontroller Development Kit (MDK-ARM)
IAR Embedded Workbench® development tools
Sourcery CodeBench development tools
Almost every other Cortex vendor out there has similar development boards with various combinations of free, but stripped down C/C++ development environments.


on a side note it would be nice if the Microsoft team used a cheaper board for development rather than the $$$ Keil board.


@ Rajesh - Yeah, they could have used the 429 Disco board from ST … that’s cheap … and lots of features to test it is based on the STM32F429ZIT6, a 2.4" QVGA TFT LCD, an external SDRAM of 64 Mbits, a gyroscope ST MEMs, a USB OTG micro-AB connector, LEDs and pushbuttons.

Key features:
[ul]STM32F429ZIT6 microcontroller featuring 2 MB of Flash memory, 256 KB of RAM in an LQFP144 package
On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone
ST-LINK/V2 (with SWD connector for programming and debugging)
Board power supply: through the USB bus or from an external 3 V or 5 V supply voltage
SDRAM 64 Mbits
L3GD20, ST MEMS motion sensor, 3-axis digital output gyroscope
Six LEDs:
LD1 (red/green) for USB communication
LD2 (red) for 3.3 V power-on
Two user LEDs:LD3 (green), LD4 (red)
Two USB OTG LEDs:LD5 (green) VBUS and LD6 (red) OC (over-current)
Two pushbuttons (user and reset)
USB OTG with micro-AB connector
Extension header for LQFP144 I/Os for a quick connection to the prototyping board and an easy probing
or they could modify the nucleos … that’s now working with netmf 4.3 on the 411 … I reported about how to get that done here on the forum …


I get that NETMF was designed to be a framework that worked on different vendors, different chips, and even different architectures, but it seems like it’d simplify a lot if we concentrated on a single platform. Something like STM32 which has a large set of offerings that are highly compatible among themselves, and has inexpensive development boards available.

Barring that, moving to take advantage of CMSIS is a large step in the right direction.

@ godefroi - Excellent idea. A big fund and make it happen :slight_smile: (no sarcasm):

Just found this on GitHub:

NETMF 4.3 Community features and GCC compatibility

@ awsomedevsigner - this might be a good starting point.

or for the discovery board: STM32F4-Discovery tutorial with Visual Studio – VisualGDB Tutorials

or using the Newlib-Nano with GCC 4.9.3 on the Discovery board: Building ARM Projects with Newlib-Nano – VisualGDB Tutorials

and for just 89 euro you get to go for linux (RPI/BBB) and embedded.

P.S. I’m not affiliated with the company but thought it is a good alternative towards Keil and you stay in VS even with debugging …

There’s some people around here with VisualGDB experience, I believe.

I think Microsoft should show their commitment to IoT and embedded devices by purchasing VisualGDB and including it in Visual Studio :wink:


The first “app” is already successfully deployed and running on a STM32F429I-DISCO board using VS2013 + VisualDBG, it is pretty simple …

Already done back in december with VS2015 than …

1 Like

@ PiWi - AWESOME! Great job!

1 Like

Well, I have added/fixed support for GCC in NETMF 4.3, including newlib-nano (*) for Netduino boards, i.e. easily applicable to other STM32Fx-based boards. As I mentioned several times, the resulting firmware is in certain cases even smaller than one produced by Keil MDK. There are some areas in the current NETMF that can be changed to reduce code size and memory consumption (buffers, string tables and such) - IIRC these are in range of kilobytes. So, the firmware can be smaller, but I don’t know exactly by how much.

(*) It requires custom built binaries to add long and double formatting, the libraries can be included in NETMF to save some tedious steps (although it has been greatly improved in recent GCC Tools for ARM releases).

Personally, I am looking towards smaller microcontrollers than currently most favorite higher-end Cortex-M3/M4 variants, although I am a little bit skeptical about Cortex-M0/+. I am waiting for the NETMF version that introduces CMSIS-based core and driver layer…

There is ongoing discussion on github Support for recent GCC toolchain and STM32F4-Discovery board · Issue #26 · NETMF/netmf-interpreter · GitHub - originally, I was going to create my own STM32F4-Discovery solution, but I decided to wait for the CMSIS support. If there is working NETMF 4.4 port for STM32F4-Discovery (doesn’t have to be RTOS-based), I should be able to provide fixed GCC support relatively quickly…