I used the "ThreeCore" example code under "C:\Analog Devices\ADSP-SC5xx_EZ-KIT_Lite-Rel2.0.0\ADSP-SC5xx_EZ-KIT\Examples\services\mcapi", and integrated them into my SC584 application, but it can't work properly.
When trace into the function "mcapi_endpoint_create", CCES triggers an error:
A non-recoverable error or exception has occurred.
Description: Data Fault Exception - caused by attempting to access invalid data memory.
With a deeper trace, I located that, in function "_adi_mcapi_createLocalEndpoint" in "endpoint.c", from lines 382:
382: waitListCopy = pEndpoint->waitList;
387: waitListCopy.pNext->pPrev = &waitListCopy;
388: waitListCopy.pPrev->pNext = &waitListCopy;
when stepping through line 387, the error triggers. By checking the "Expressions" window, I found that, waitListCopy->pNext = 0, and waitListCopy->pPrev = 0, these 2 addresses are not writable, and caused the error.
The "endpointID" is 0. Seems no error.
By the way, the MCAPI initiate code is:
where "PROT_COMMS" is "MCAPI_NUM_RESERVED_PORTS" as in "ThreeCore.h", but not "MCAPI_PORT_ANY" as in the help document. I don't why the ADI guys use "MCAPI_NUM_RESERVED_PORTS", and why my program can't work.
Thanks in adcance,