An article was posted today on the Arduino blog regarding release of the Due as well as Arduino 1.5 software.
At one point, it states the following (see further below).
I'm wondering -- Does this mean support for microcontrollers from other series such as Texas Instruments MSP430 too? If so, exactly what amount/kind of work is usually involved in this kind of porting to a given microcontroller?
I understand that not all code would translate completely because of architecture differences but I'm imagining that there could be tremendous potential in this, because it would mean the ability to flexibly use the huge repertoire of code/libraries that exists in the Arduino community, but now be able to use it across various microcontrollers.
Support for Multiple Microcontroller Architectures and Toolchains
While the interface for compiling and uploading sketches remains the same, we’ve made some significant changes under the hood in order to support the new 32-bit, Atmel SAM3X ARM processor on the Due.
The new Arduino environment (IDE) can now be configured to target multiple processor architectures, each with its own toolchain and compilation process. To support a new processor family, the core language and libraries need to be ported (as we’ve done for the Due) and some configuration files edited to specify the commands for compilation and uploading.
We’ve focused on ensuring that this new system works seamlessly for the Due and our existing AVR-based boards, but with some tweaks and improvements, we imagine that it will allow the Arduino environment to work with many, many more microcontrollers. We’ll be posting more details of this new system soon but, for now, you can look at the “avr” and “sam” directories in the Arduino software for an idea of how it works.
Does this mean support for microcontrollers from other series such as Texas Instruments MSP430 too?
The basic concept can be extended to other chips.
Many embedded programming firms use a similar approach by programming through a set of firm-specific libraries to maintain code portability across mcus.
@westfw: I'm curious: With those ports that you mentioned already in place, why haven't they been widely adopted yet?
This is the first time I've heard of Energia for example (although I know Teensy has been around for a while).
I am definitely going to test it out with a TI Launchpad now and see how the code travels over to the MSP430.