At work I'm using a Nios CPU with Quartus 7.1. I've configured it with 512 bytes data and instruction cache, and it uses internal RAM. I have a struct like this:
struct Something { alt_u16 foo; alt_u16 bar; };
When modifying "foo" in a loop in main and "bar" of the same object in an interrupt, it looks like sometimes it behaves like the interrupt overides both variables, e.g. main increments "foo", but after the interrupt has written "bar", the old value of "foo" is there, too. Maybe there is a bug with memory cache updates? When I'm using "int" (or alt_u32), the problem disappears.
Is there anything like this already known? If not, I'll try to extract a simple test case.