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.

OMAP-L137 memory map

Other Parts Discussed in Thread: OMAP-L137

Hi,

In a nutshell: I need more memory in the DSP side of my application, how do I configure that?

.

In more words and details:

My application is based on the call_dsplib example application. All I want to do is to have more memory in my DSP side application. I followed the steps to change the memory map in this page:

http://processors.wiki.ti.com/index.php/Changing_DSPLink_Memory_Map

But when I run my application weird things happen, like getting my SD card corrupted or getting a huge load of information printed on the terminal.

I realized that the changes I do on $(DSPLINK)/config/all/CFG_OMAPL1XXGEM_SHMEM.c don't really seem to matter, since if I mess up the file I still can build my application. Then I went to this page:

http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_configuration_issues#Problem:_Modifying_DSPLink_configuration_file_is_not_making_any_difference_in_memory_map

And it seems that this is my issue, apparently I'm running DSPLink inside Codec Engine. I'm using the DSPLink 1.61-prebuilt that comes under the OMAP-L137 SDK 1.00.00.07, I really don't know if this is a standalone DSPLink or if this really is inside Codec Engine, but it does look like a standalone build.

So assuming my DSPLink is inside CE, how do I change the memory map through Codec Engine? I read this page:

http://processors.wiki.ti.com/index.php/Changing_the_DVEVM_memory_map

But this really didn't help me. I looked in the CE folder and I found some files that set the memory map, they are:

C:\OMAPL137_dsp_1_00_00_07\codec_engine_2_22\packages\ti\dsplink\utils\lad\user1_linkcfg_omapl137.c
(there is also user2_linkcfg_omapl137.c and user3_linkcfg_omapl137.c)
and C:\OMAPL137_dsp_1_00_00_07\codec_engine_2_22\packages\ti\sdo\ce\ipc\dsplink\Processor_dsplink_linkcfg_OMAPL137.c

In the first ones the memory map definitely doesn't match my TCF file, and for the second one, instead of the memory table, that is what I have:

STATIC LINKCFG_MemEntry * LINKCFG_memTables [] =
{
(LINKCFG_MemEntry *)NULL /* Memory Table 0 - filled by CE runtime code */
} ;

So how can I setup this CE runtime code? How can I have more memory in my DSP application? I have no problem when I'm running my app under CCS, because I can define a huge heap size on the CMD file and everything runs fine. But once I start using DSPLink, I have this memory issue that I just cannot solve.

Any help will be really appreciated. My next post will have all the details about the memory map configurations I've been trying.

.

EDIT: I got it to work. Inspired by this page I stoped trying to map my memory starting at 0xC000_0000, that is probably the reason I corrupted my SD card since this memory is reserved for Linux. I have mem=32M in my bootargs, and my CMEM starts at 0xC200_0000 like in the table. The rest is different, though. The rest starts at 0xC3E0_0000, and ends at 0xC3FF_FFFF like in the table. So I figured that I could try to map my segment in this gap between CMEM and the rest, and it worked!

Now my question is: why can't I map my new segment after 0xC3FF_FFFF, starting at 0xC400_0000, for instance? In OMAP-L137 datasheet, page 25, it is said that EMIFB SDRAM Data goes from 0xC000_0000 to 0xCFFF_FFFF.