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.

heap creating syslink alloc failure

i wrote a g729 codec app, then i had opened codec engine and configure params -- stack size and  heap size .  i was testing  how many handle(dec enc)  can be created, but it create failure in 64 handle.  i try to change config params, but still can't solve it,  anybody had this problem? 

 

*** HeapBufMP_alloc: Ran out of memory blocks!

        Error [0xfffffffd] at Line no: 1080 in file /usr/local/ezsdk/component-sources/syslink_2_00_02_80/packages/ti/syslink/utils/hlos/knlc

*** Memory_alloc: IHeap_alloc failed!

        Error [0x8c97e001] at Line no: 156 in file /usr/local/ezsdk/component-sources/syslink_2_00_02_80/packages/ti/syslink/utils/hlos/knl/c

*** MessageQ_alloc: Message allocation failed!

        Error [0xfffffffd] at Line no: 1291 in file /usr/local/ezsdk/component-sources/syslink_2_00_02_80/packages/ti/syslink/utils/hlos/knlc

  • You don't say what configuration you tried changing to no effect...

    There is a Codec Engine configuration parameter that should help here.  The following is a snippet from the Codec Engine examples' common config file <codec_engine>/examples/ti/sdo/ce/examples/buildutils/remote.cfg:
        var common = xdc.loadCapsule('ti/sdo/ce/examples/buildutils/common_sys.cfg')
    ;
        var Processor = xdc.useModule('ti.sdo.ce.ipc.dsplink.Processor');

        /* first set module defaults ... */
        Processor.heapId = common.MessageQ_heapMap["Ipc"];
        Processor.sharedRegionId = common.SharedRegion_map["Ipc"];

        /* ... then add per-processor settings */
        var coreComm = {};
        coreComm.numMsgs = 64;
        coreComm.msgSize = 4 * 1024;
        coreComm.heapId = common.MessageQ_heapMap["Ipc"];
        coreComm.userCreatedHeap = false;
        coreComm.sharedRegionId = common.SharedRegion_map["Ipc"];
        if (platform.match("TI814X") || platform.match("TI816X") ||
                platform.match("DM8148") || platform.match("DM8168")) {
            Processor.coreComm.$add(coreComm);
            Processor.coreComm.$add(coreComm);
            Processor.coreComm.$add(coreComm);
            Processor.coreComm.$add(coreComm);
        }
        else {
            Processor.coreComm.$add(coreComm);
            Processor.coreComm.$add(coreComm);
        }

    Note the coreComm.numMsgs=64, this is most likely what you would need to increase in order to create more instances.

    Regards,

    - Rob

     

  • Robert,

    Thank you very much!