“when the user clicks the “Upload to I/O board” button in the IDE, a copy of the code is written to a temporary file with an extra include header at the top and a very simple main() function at the bottom, to make it a valid C++ program.”
It seems to me that all the Arduino “magic” is in that library that gives you convenient things like digitalWrite. Port that to the Kinetis MCU, or STM32 MCU, or whatever, and you have Arduino for ARM.
@ godefroi - I just ordered one of those beasts… If all things go according to plan I will have it and a bunch of GHI kit that I ordered by Tuesday, I feel like a child on Christmass morning waiting for my parents to wake up
It’s a pretty sweet board. I’ve gotten as far as dimming the various LEDs on the board in various patterns, using PWM. Certainly a lot more complex than NETMF, but it’s kinda fun being that “close to the metal”. The performance is also amazingly high when there’s nothing getting in the way
I’ve wondered a bit if D could be used, given that there’s a D frontend for GCC. D gives you a modern object-oriented garbage-collected language (with a real string type) but without the JIT or VM.
“Hello World” compiles to about 150K (most of which is statically compiled libraries), which means there’s plenty of room on the chip for it.
IMO it is actually an “alternative”, due to the points I mentioned before. Also note that godefroi said it should compete with NETMF’s debugger, which we all know is great.
I don’t expect to see much of NETMF’s user base changing in the future, since most NETMF current users were already desktop .NET developers and Microsoft “fans”. Instead, this kind of board is something the Arduino fans have been craving for and that could make the Galago a success.
Right now, if you want an easy to program 32-bit platform with a free toolchain that includes on-chip debugging, netmf is pretty much your only option. This board looks like it will change that, with a highly integrated and easy to use toolchain that includes on chip debugging. Given the performance that you’ll see with this thing, it will be worth it to dust of the C skills.
The MCU on the Galago is much less powerful than the one on the Discovery board, to be sure, but even so, because you’re working in native code, after working with NETMF you’ll feel like it’s a multi-ghz monster.
The Discovery board has a debugger on it as well as the STM32F4 microcontroller, so it can do on-chip debugging as well, but the software packages available to do so are either commercial and VERY expensive, or limited (usually a 32KB code limit). I believe it’s theoretically possible to do it with a free toolchain (Eclipse + GCC + OpenOCD + GDB) but I haven’t been able to put all these pieces together to make it work.
The MCU on the Galago is available in ones for <$2, so using it in a permanent installation is an easy choice, financially.
@ godefroi - have you taken a look at the Coocox’s CoIDE, it is free and supports a host of different ARM dev boards including the STM32F4Discovery board. I have only used it for a few hours so far, but the debugger is very nice, you can step through at the source level or concurrently though the assembly, change register values directly etc… And the built in help is pretty impressive.
Galago implements a USB to SWD debugger using a ATTiny45. I am sure that this interface is bitbanged as the Tiny does not have hardware USB. Wonder what the download speeds are.
I am sure that the compiler is GCC and the debugger is OCD based, wonder how this is going to work with a cloud based IDE. The Embed folks are trying to do this using CMSIS-DAP debug (driverless USB debug), however this requires you to export the code to MDK. You can configure MDK to use a GCC compiler if needed. Considering that the entire Mbed development is cloud based, I wonder why they require an export to MDK for debugging.
As I understand Galago, the IDE is HTML5, but it is not internet-hosted (requires no internet connection). I’m not sure how I feel about mbed and the online compiler. My knee-jerk reaction is “bleh.”