I am using a ADSP-SC589 and am attempting to write from SHARC multiprocessor space from the ARM core. This is my very simple test code:
int *pTest = (int *) 0x282C0000; // SHARC1 multiprocessor space, L1 block 2, address 0xB0000
nTest = *pTest; // read from SHARC, this works
*pTest = nTest; // write to SHARC, this fails
The console prints out this message:
A non-recoverable error or exception has occurred.
Description: Data Fault Exception - caused by attempting to access invalid data memory.
General Type: RunTimeError
Specific Type: ExceptAbrtData
Error Message: If this is a synchronous fault, address 0x282c0000 held in Data Fault Address Register (DFAR) is the problem address.
Error PC: 0xc1004fc0
Because the real works and the write fails, I assume my address is correct. I am thinking this could be an SMPU issue? However, this is right after reset and according to the hardware reference manual, the SPU should be wide open. I have spot checked some of the SMPU registers and they all look correct. I've tried various addresses in different memory blocks, using Slave1 Port vs. Slave2 Port, and both SHARC cores.
Is it accurate that the console error above is due to a protection issue, or could something else cause that? What can I do to disable this protection?
I'm testing this on the SC589 EZ-Board. The code was added to the GPIO Button LED Polled (SC589 Cortex) example project, so it is doing very little else. The code snippet above was added just after enabling both SHARC cores.