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.

Syslink Error when running openMax after c6runlib

Hi,

 I am debugging a custom board with DM8168, 
 and my ezsdk version is 5.02.02.60. (C6run 0.98.0.0, syslink 2.0.2.80, omx 5.2.0.15 ).

I have a openMax demo program and a C6runLib program, and both work fine respectively.

But if I run openMax demo after c6runlib demo, the program crashed at OMX_Init(), with the error
Assertion at Line no: 430 in /media/ezsdk/ezsdk_dm816x-evm_5_02_02_60/component
sources/syslink_2_00_02_80/packages/ti/syslink/utils/hlos/knl/Linux/../../../..
../../ti/syslink/ipc/hlos/knl/Linux/SharedRegionDrv.c: (status >= 0) : failed

I add printk in syslink and here is the print out message
SharedRegion_Entry: name=(null), id=1, ownerProcId=65535 
ownerProcId=-1: sharedAddr=d7600000, heapHandlePtr=d0ac9044, status=-5
Assertion at Line no: 430 in /media/ezsdk/ezsdk_dm816x-evm_5_02_02_60/component
sources/syslink_2_00_02_80/packages/ti/syslink/utils/hlos/knl/Linux/../../../..
../../ti/syslink/ipc/hlos/knl/Linux/SharedRegionDrv.c: (status >= 0) : failed

SharedRegion_Entry: name=(null), id=1, ownerProcId=65535
ownerProcId=-1: sharedAddr=d7600000, heapHandlePtr=d0ac9044, status=-5
Assertion at Line no: 430 in /media/ezsdk/ezsdk_dm816x-evm_5_02_02_60/component
sources/syslink_2_00_02_80/packages/ti/syslink/utils/hlos/knl/Linux/../../../..
../../ti/syslink/ipc/hlos/knl/Linux/SharedRegionDrv.c: (status >= 0) : failed

I this post http://e2e.ti.com/support/embedded/linux/f/354/t/135217.aspx#487893, I think we have the same problem.
it said “ The ownerProcId should definitely *not* be 65535 (16-bit form of -1).”
But when the openMax run respectively, (I mean before c6runlib demo run) It works fine,
and the output message is like
SharedRegion_Entry: name=(null), id=1, ownerProcId=65535 
ownerProcId=-1: sharedAddr=d7400000, heapHandlePtr=d0ac9044, status=0
SharedRegion_Entry: name=(null), id=2, ownerProcId=65535
ownerProcId=-1: sharedAddr=d8000000, heapHandlePtr=d0ac9068, status=0

Chris said this is a bug in the OMX layer, so I found the source of memcfg.c.
......
       /*--------------------------------------------------------------------*/
        /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
        /* If the shared region is not included, then set a new entry.  */
        /* */
        /*--------------------------------------------------------------------*/
        SharedRegion_entryInit (&srEntry);
        MEMCFG_module->bSrAddEntryDone[i] = TRUE;
        if (MEMCFG_sharedRegionTypeMaster ==
            MEMCFG_sharedRegionConfigTable.aSRInfo[i].srType)
        {
          srOwnerProcId = MultiProc_self ();
          createHeap = TRUE;
        }
        else
        {
          srOwnerProcId = SharedRegion_DEFAULTOWNERID;
          createHeap = TRUE;
        }
......

 Is this part incorrect? 
I am sorry I still not quite clear how to slove this problem.

Regards,
Lei
  • Hi

    I just commented srOwnerProcId =  SharedRegion_DEFAULTOWNERID part.

    ----------------------------------------------------------------------------------------------------------------------------------------------------

     /*--------------------------------------------------------------------*/
     /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
     /* If the shared region is not included, then set a new entry. */
     /* */
     /*--------------------------------------------------------------------*/
    SharedRegion_entryInit (&srEntry);
    MEMCFG_module->bSrAddEntryDone[i] = TRUE;
    // if (MEMCFG_sharedRegionTypeMaster == 
    // MEMCFG_sharedRegionConfigTable.aSRInfo[i].srType)
     // {
     srOwnerProcId = MultiProc_self ();
     createHeap = TRUE;
     // }
     // else
     // { 
    // srOwnerProcId = SharedRegion_DEFAULTOWNERID;
     // createHeap = TRUE;
     // }
    ----------------------------------------------------------------------------------------------------------------------------------------------------
    And It seems work fine now, But I don't know if there will be any other problems.

    Regards,
    Lei