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.

Error creating Heap using SYS BIOS 6 and the DSP of the Integra

Other Parts Discussed in Thread: SYSBIOS

We are using the Integra part on a custom board. We have DDR3 RAM availalbe. I am trying to create a Heap section of memory in order to setup a MessageQ between the DSP and the ARM processor. I have followed the MessageQ example but it always produces an error when it gets to the HeapBufMP_create command. I have attached the code that I am trying to execute.

I have also creaetd the MessageQ example that comes with CCSv5 and I get the same error when the "heapHandle = HeapBufMP_create(&heapBufParams);" is attempted.

The error I get is:

ti.sdo.ipc.heaps.HeapBufMP: line 808: assertion failure: A_noHeap: Region has no heap

xdc.runtime.Error.raise: terminating execution

I amusing the .cfg file that is included in the MessageQ example.

How do I get rid of this error and create my Heap?

Thanks

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5287.heap.txt

  • Brad,

    Your code snippet is missing the required call to Ipc_start() in main().

    Without this call, none of the shared memory region objects are initialized.

    Alan

  • Alan,

     Thanks for the response.

    We are trying to develop the DSP code without having the ARM up and running. We had tried the IPC_start before the heap creation but the processor goes off and runs forever. From reading the literature, we are assuming that the Ipc_start command causes the DSP to try and sync up with the ARM (which in our case isn't running).

    Is there a way to develop the DSP-side of the IPC interface without the ARM up and running?

     

    Thanks

  • BradP,

    You say you are trying to develop code without having the ARM up and running.  Is this code you are trying to develop trying to do any communication between ARM and DSP?  If the code that you are trying to develop requires communication between ARM and DSP then the answer is "No" you cannot develop this on the DSP without having the ARM running also.

    I think in your code snippet you had a HeapMemMP_open(), this would require the ARM to be running and setup to handle interrupts from DSP.

    If you haven't already seen the Notify and MessageQ examples that ship with IPC product, I would recommend starting there.

    Judah

  • Hi BradP,

    If you truly want to realize the DSP's part, I would suggest you to simulate the works of ARM using SYSBIOS threads such as Task or Swi which is all running on DSP. And then the function of IPC will also be covered too, because you can leverage IPC to communicate between DSP's thread and ARM's thread. After verification of the both sides, then migrate the parts of ARM to actual ARM core.

    btw, IPC_attach() in IPC_start() maybe halted if you setup Ipc.ProcSync = Ipc.ProcSync_ALL in your cfg file. Because as you said, the ARM core didn't run. So if you want to have a try at the above option, you should set Ipc.ProcSync = Ipc.ProcSync_NONE to avoid IPC_attach() at first.

    Allen