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?
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.
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.
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
[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.
@ 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.
[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
2.4" QVGA TFT LCD
SDRAM 64 Mbits
L3GD20, ST MEMS motion sensor, 3-axis digital output gyroscope
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.
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…