This is a follow up for a previous problem I have posted, and need to find an explanation for. (Is a simplified program available for testing LPDSP32 codec using echoDSP? - #5 by mahaju)
I am trying to see a demonstration of the Echo_DSP sample program. I am running this program by loading the AudioCodecs project in the Arm Cortex in debug mode, while loading the echo.pxr project (RSL10_LPDSP32_Software_Package\RSL10_LPDSP32_22.214.171.124\AudioCodecsDSP\src\codecs\echo) in the LPDSP32 in debug mode using ChessDE. These are the changes I have made to the source code of the AudioCodecs Arm Cortex program:
A) included related preprocessor directives to enable RTT printf() messages
B) in main() function in main.c, changed the following line:
CODEC myCodec = populateCodec(G722_PLC_DSP, Buffer.configuration, CODEC_CONFIGURATION_SIZE);
CODEC myCodec = populateCodec(ECHO_DSP, Buffer.configuration, CODEC_CONFIGURATION_SIZE);
in echoDSPInitialise() function in echoDSPCodec.c, I commented the loadDSPMemory() function
Inside dspHandshake() function in baseDSPCodec.c, added the following line after pBaseDSPCodec config = getDSPCodec(codec);
PRINTF("&(config->dspStatus): 0x%x \n", &(config->dspStatus) );
If I single step through this program, the printf() function shows the address of (config->dspStatus) as 0x2000051C.
I had assumed that the starting point of the shared memory address for this sample program was at 0x20011800, same as in the Fibonacci sample program. The value shown in printf() seems completely off (I was expecting this to be somewhere inside DSP_DRAM4/5). If I run the echo.prx project in ChessDE in the simulator, single step through the program into the handshake() function, and find the address &(conf->dspStatus), I get a value 0xB868, which seems to be the correct address (given that the starting point for the shared memory location inside echo.prx project has been declared as (DMA:0x0000B800).
I have the following questions.
Did I do everything correctly here, for loading echo_DSP project into LPDSP32 PRAM directly for debugging?
What is the starting point for the shared memory address, and particularly, the address of config → dspStatus? Is this defined in sections.ld in this project?
Is the address for &(config->dspStatus) that I got (0x2000051C) correct? If it is why isn’t this sample program going past the dspHandshake() function?