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.
Hi,
I am using OMAP-L137 DSP, non BIOS.
I met a problem with not enough DSP memory.
In my DSP code, there are 10 large look-up tables (LUT) defined. Each LUT contains 8000 entries float type data. It means each LUT need 8000 * 4 = 32K Bytes. In total 10 LUTs need 320KB.
Due to the speed requirement, I am using 256KB DSP L2 RAM as .sysmem memory. All the sections such as .bss, .far, .cinit, .const, and .sysmem are using DSP L2 RAM. L2 RAM is not enough to hold all the LUTs.
As the 128KB shared memory and 32KB L1D RAM are free totally. I am thinking to put LUTs into L2 RAM, shared memory and L1D RAM separately.
My questions are:
(1). In the linker.cmd file, how can I define the sections, such that to put 3 LUTs (i.e. LUT_1, LUT_2, LUT_3) into L2 RAM, 2 LUTs into shared memory (LUT_4, LUT_5), 1 LUT into L1D RAM?
(2). Is the DSP code workable, if I put LUTs into different memories as stated in Question (1)?
(3). If it is not workable as stated in Question (1), could you give me some suggestions on how to solve the memory problem to hold large LUTs in the DSP code?
(4). Is it possible to put .bss, .far. cinit, .const, and other sections into L1D RAM, while choosing .sysmem into L2 RAM? I tried this method. But the DSP code cannot work properly. Would you tell me what's wrong here?Does it mean we must put them into the same memory?
Thank you so much.
I think some combination of the techniques in this application note will work for you.
Thanks and regards,
-George