Hello,
I'm working on porting a project from a custom C6713 board to a custom C6726 and have noticed an issue: 64-bit reads from external memory (SDRAM) don't work properly. Some pseudocode:
{
extern double iramVar; //allocated in IRAM
extern double sdramVar; //allocated in external memory
sdramVar = 0xAAAABBBB 12345678;
iramVar = sdramVar;
}
The results of this would be:
iramVar = 0x12341234 12345678
So the lower word is being read successfully, but for some reason the upper word is being ignored and replaced by the upper two bytes of the lower word. 64-bit writes to external memory work correctly, as do reads of shorter data types.
The only thing I could think of that would cause this was an incorrect setup in the SDCR of the narrow mode bit which controls whether the EMIF is 16 or 32 bit. I checked and it is correctly set to 16 bits. Any suggestions of other things to check?
Thanks,
ralwood