OLD VERSION: gcc version 4.3.3 (WinAVR 20100110)
NEW VERSION: gcc version
4.5.1 (AVR_8_bit_GNU_Toolchain_3.3.1_422)
I am building an Arduino project (outside of the Arduino environment) that
uses the Ethernet Shield. w5100.h is giving me trouble. Building w5100 with the
OLD version works. Building w5100 with the NEW version does not work. It builds
OK with both. By work I am referring to the runtime interaction with the W5100
chip on the Ethernet shield.
I can build all files except w5100.cpp with the NEW version, but w5100.cpp
has to be built with the OLD version to make it work.
Looking at the generated assembler, I observed that the NEW compiler
pushes and pops more registers. I did not try to debug this further.I was able
to find a patch here that works with both versions ...
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51445
https://bugzilla.redhat.com/show_bug.cgi?id=766299