Hi everyone,
I'm having a subtle problem with the compiler g21k on an ADSP21020. When I want to write to a specific memory-mapped register the tool addresses the *address+1* instead. I have the address defined as follow:
and then I use it like this:
If I look at the assembler output (listing and object) it looks like the address in the listing is correct:
i0=-2147483648; (which is 0x80000000)
while the object code is:
0F1080000001 (which is an 'immediate move' i0=0x80000001!!!)How can I have such a strange behavior? The 0x80000000 is at the memory bank boundary, but I don't see how that can be a problem. Anything I should be aware of that my compiler is silently taking into account?
Al