I’m experimenting with writing a new Arduino runtime using the IDE 1.5.x beta environment, using the instructions from the Wiki:
Arduino IDE 1.5 3rd party Hardware specification · arduino/Arduino Wiki · GitHub.
In my experimental runtime, I’d like the compiler to optimise out the C++ abstractions, such as any Serial objects, and making the program to access the hardware registers directly. For example, if I could make the “Serial” object into a constant object initialised at the compile time, I could make methods like Serial.begin(int speed) or Serial.write() inline const. Then, with aggressive constant propagation, calls to Serial.begin or Serial.write could be optimised into direct writes to the appropriate hardware registers, thereby generating both more efficient and smaller code. However, for that I would need better C++11 support than what GCC 4.4.1 supports, preferably moving to GCC 4.7. series.
In the ide-1.5.x branch in github, for the Cortex-M targets, the ant build.xml fetches a pre-compiled GCC 4.4.1, at least for Mac OS X.
I can update the compiler locally, but is there any chance that the Arduino project would update the compiler, even in the IDE 1.5.x series?
PS. I’m new to the Arduino forums. Hence, if there is a better forum for discussing issues like this, please let me know. However, the only C++11 related posts that I could found were in this forum.