This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to keep critical data segment in L1/L2 for better performance?

Dear supporters:

Currently we are suffering performance deterioration due to some complex algorithm modification.

We have downscaled the image to 184x120 (~ 22KB in Y domain ) for better performance.

Because the algorithm has intensive access to this buffer, I 'd like to keep this buffer in the L2 (256K) or

L1(32K) at all time. I have tried to use

#pragma DATA_ALIGN(g_aucfBuffer, 128);
#pragma DATA_SECTION(g_aucfBuffer, ".Dmod_WorkBuffer");
unsigned char g_aucfBuffer[184*120];

and added cmd file, link_dsp.cmd

SECTIONS

{

           ...

          .Dmod_WorkBuffer > L2

}

Got error below:

"D:/EAGLE-II/src/avsk_app/link_dsp.cmd", line 12: warning: memory range not
found: L2 on page 0
"D:/EAGLE-II/src/avsk_app/link_dsp.cmd", line 12: error: no valid memory
range(NULL) available for placement of ".Dmod_WorkBuffer"
"D:/EAGLE-II/src/avsk_app/link_dsp.cmd", line 12: error: program will not fit
into available memory. run placement with alignment fails for section
".Dmod_WorkBuffer" size 0x15900
error: errors encountered during linking;
"D:/EAGLE-II/src/outfiles/avsk_app/bin/ti814x-evm/avsk_app_dsp_debug.xe674"
not built

We use TI compiler thru makefile, not thru CSS. CSS is mainly for debug purpose.

My platform info: TMS320DM8148 (Vision-Mid) 

600-MHz ARM® Cortex™-A8 RISC MPU

500-MHz C674x™ VLIW DSP

200-MHz M3-ISS/M3-HDVPSS 

Best regards,

Joey from Altek

  • Joey,

    Joey Lin said:
    We use TI compiler thru makefile

    I use the GCC compiler (CodeSourcery/arm-2009q1/bin/arm-none-linux-gnueabi-gcc) with the DM814x EZSDK, so I am not able to help you with this one.

    I would recommend you to chick this in our TI-RTOS forum or TI C/C++ compiler forum.

    Best regards,
    Pavel