Is anyone successfully using WinAvr and Xmega (and fp/printf)
in a significant project? I already corrected the vararg problem and have
my project running, but there is a rare stack corruption problem with the xmega
that I don’t see on the mega series (mega128 and mega1280). Interrupts
and i/o change protection are the big differences between the two series so
that seems like a possible source of errors.
I have five serial sources and a 1khz system timer and a
multitasking kernel that relies on nesting interrupts (run to completion model)
and a GUI. So it is pretty busy and, as I said, works sweet on the
m128. The problem is subtle. There is no evidence of stack
overrun. Just one task eventually ends up somewhere it shouldn’t be
and dies. Evidence pointing to it being my problem is that it is always
the same task and indirectly the same routine because if I cut the routine out,
the problem either disappears or becomes so rare I never wait long enough…
The routine is a character glyph bitblit. The evidence that it isn’t
my code is that I have two other bitblit routines (windows bmp, and a specialized
fill routine) that have the same code in their core (about a dozen lines) and
they don’t fail. Failure occurs in minutes to hours after starting
a test screen.
Anyway, I am running out of ideas and starting to consider
moving to the mega1280. I don’t want a big discussion, but would be
interested in knowing if others have success, or have seen problems. That
will help me decide if I am going to pursue this more (i.e. my code issues, or
possible compiler issues) or drop it (chip issues).