when porting legacy Sharc code to SC5xx we ran into issues with 40 bit memory accesses to variables. After switching a memory bank to 40 bit via REG_CMMR0_SYSCT, both the Memory Browser in CCES as well as all compiled "C"-code accesses the wrong memory, so sharing 40 bit memory between assembly and "C" is no longer possible -- it did work on all legacy Sharcs we used though.
If this is supposed to work, we are happy to provide a small project showing the issue. The only workaround currently seems to be to use hard-coded memory locations from "C"; e.g., *(0x2c0600) = 1; to access 40-bit memory 0xb0100. This is, of course, not possible for the majority of our projects.
Switching the compiler char-size to 32 bit (which may solve the issue) is no option, as even basic functions like "adi_int_InstallHandler" no longer compile with 32 bit, probably due to library issues.