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.

New Syslink/Ipc Problem

Other Parts Discussed in Thread: SYSBIOS

I've written some code that causes a new DSP task to be created upon the receipt of a notification from the ARM.  The main loop runs ok, and so does the first task, but when I go to create a second task I get the following error:

ti.sdo.ipc.ListMP: line 417: assertion failure: A_nullPointer: Pointer is null

ti.sysbios.gates.GateMutex: line 114: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.

xdc.runtime.Error.raise: terminating execution

Perhaps I'm running out of memory?  The second task never gets created.

Lee Holeva

 

  •  

    I am seeing a similar crash, if task is configured statically. Basically static task creation seems broken, but codec engine still works. Dynamic task creation also works for me

     

    RV

     

     

     

     

  • I'm not using Codec Engine, I figure that I have a greater likihood of success using the lowest-level TI products, Syslink, Ipc, EDMA3 LLD, and so forth.  I do task creation this way, it works once:

     /* Spawn a task */
     Task_Params HNCparams;
     Task_Params_init(&HNCparams);
     HNCparams.arg0 = (UArg)ptr;
     taskHNC = Task_create((Task_FuncPtr)calcHNC, &HNCparams, NULL);
     if (taskHNC == NULL){

       System_printf("Cannot startup the task\n");
     }

    The NULL pointer assertion is coming from Ipc and the above code never gets called for the second task.  Somehow ListMP is getting messed-up and the notify that signals the DSP to perform the second task then triggers the assertion.

    Lee Holeva