I'm working on Ubuntu, and I've downloaded GCC 4.3.0 and applied all
the patches delivered with WinAVR, and it appears that there is what
might be a reappearance of an optimization bug. Is the distribution
missing a patch, or do I have to start trying to figure out where my
code is broken.
My problem seems to occur when I try to send a message to my
application requesting a USART bitrate change. If I had to hazard a
guess, it seems that the target has a hard time dealing with the 32-bit
data and generates a bad value for UBRR register. Once that happens,
it's time to reset. Unfortunately, one of my applications is
essentially a 4-way soft UART, which gets the problem doubled.
For the record, it seems fine if I compile with -O0 on 4.3.0, and I
still have one of my PCs with a 4.2.2 avr-gcc in which I compiled doing
the same as I did above for 4.3.0.