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.

Allocating DSP internal memory for an OMX component

Dear all,

I've developed an OMX component for the DM8168 similar to the VLPB. The component processes a frame of video in the DSP, and I would like to use the DSP internal memory (L2) for my operations. Currently I am allocating memory for the component using OMX_BASE_Malloc, which I am not sure it uses the DSP internal memory. 

How can I allocate DSP internal memory for my OMX component? Is there any settings for the OMX_BASE_Malloc, or is there a specific malloc function for the DSP?

Thanks,

Danillo

  • Hi Margarita,

    thanks for your reply. I read those threads, but still did not find the appropriate solution to my problem. In one of those, the community member (Gabi) even reports that he does DMA into DSP internal memory, which is exactly what I intend to do, but he does not provide any details on how to implement this. But I htink he is using Codec Engine, and not VLPB/OMX, which is what I want to use. So my question is still:

    - How to access the DSP internal memory? With Codec Engine, I just had to indicate the memory space to IALG_DARAM0 to use the L2 RAM memory in the algorithm Alloc() function. Also the L2 memory space was defined in several configuration files for the codec server (server.cfg, server.tcf and memmap.tci). However with OMX, how is this done? Is there an specific memory_Alloc function to access that RAM? Also the only file for configuration that I identified was DspAppMain.cfg, which points all memory allocation to "DSKT2_HEAP", but I don't see the L2 RAM memory of the DSP defined in any configuration file being used by OMX.

    Could you provide me more details, or even more posts related to this implementation? I would appreciate it.

    Thanks,

    Danillo

     

  • Hi Margarita,

    I found a thread where Gabi explains how to access the DSP internal memory: http://e2e.ti.com/support/embedded/linux/f/354/t/202453.aspx?pi196120=2

    In my case, I allocated the section .intHeap_1 in the DSP internal memory, and then used the global variable g_IntHeapMemory_Handle_1 to allocate the desired memory  

    In AppMemSegPlacementCfg.cfg:
    Program.sectMap[".intHeap_1"]                = "MYDSP_HEAP"; 

    In MemSegmentDefinition.xs:

    memory[18] = ["MYDSP_HEAP",
      {
              name: "MYDSP_HEAP",
              base: 0x800000,
              len: 0x0030000,
              space: "code/data"
      }];

    In my OMX component initialization:

    pDSPMemory = OMX_BASE_Malloc (sizeof(OMX_U8)*1024*128,g_IntHeapMemory_Handle_1);

    Hope this is of use to others.

    Thanks for your help,

    Danillo