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.

POOL_alloc on the DSP using DSPLINK



Hello,

my application uses DSPLINK to send messages from ARM to DSP and from DSP to ARM. Both cores can initiate
a communication. I use MSGQ and it works. My problem is that i have to transfer some messages with zero data
and messages with a payload up to kilobytes and megabytes of data. A MSGQ message is limited to 64k. So i tried to combine it.
I want to be able to send a message via MSGQ with a pointer and size entry of the memory allocated in POOL which
contains the payload data.

I think, the ARM call of POOL_alloc() has a 32Bit size parameter. But what is with the DSP implementation of POOL_alloc?
I found some examples without input parameter like POOL_alloc(void); Where is the information about the size? No malloc
function can work without the mem size to be allocated.
The document LNK 082 DES contains a prototype:

DSP_STATUS POOL_alloc (Uint16 poolId, Uint16 size, Pvoid * bufPtr) ;

Here i have the 64k problem again.

The writer of the message should call MSGQ_alloc() and POOL_alloc(), the reader of the message should call MSGQ_free() and
POOL_free(). DSP and GPP can be reader or writer.

What can i do ta avoid working with static buffers? I have the need to create a dynamic relation between the message and the
payload data.

regards,

Volker