Hi There:
I am try to make a program in C6455 DSP. However, I need to allocate more than 32KB (0x8000) Cache, which is uplimit in the C6455. However, I know I do not have to use these data structures at the same time. For example
at time 1 (I need 0x7000 L1D)
#pragma DATA_SECTION(data1, ".l1d:tsd_0");
#pragma DATA_SECTION(data2, ".l1d:tsd_1");
#pragma DATA_SECTION(input_l1d, ".l1d:input_0");
#pragma DATA_ALIGN(data1, 8);
#pragma DATA_ALIGN(data2, 8);
#pragma DATA_ALIGN(input_l1d, 8);
int data1[2048];
int data2[2048];
short input_l1d[6*1024];
at time 2 (I need 0x6000 L1D)
#pragma DATA_SECTION(pingpong_buffer, ".l1d:l1d_sect0");
#pragma DATA_ALIGN(pingpong_buffer, 8);
unsigned short pingpong_buffer[12*1024];
Obviosly, the total amount of the L1D request exceeds the 0x8000 size limit. Then I tried the following to reuse the L1D at time 2. This method does not work because the program is running abnormally without finishing. I assume the data 1, data 2 and input_l1d are allocated in the L1D at time 1 and my method is re-using the L1D from the very beginning.
pingpong_buffer = (unsigned short *)data1;
Can you give me suggestions why I failed to re-use the L1D here?
Thank you very much,
Renaissance