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.

AM5728: ipc-linux MessageQ_staticMsgInit

Part Number: AM5728

Hi,all

  I want to use MessageQ_staticMsgInit at examples/DRA7XX_linux_elf/ex02_messageq.

  I checked some similar forum links, but arm runs bios and use shareregion. https://e2e.ti.com/support/processors-group/processors/f/processors-forum/824492/am5728-static-allocated-message-causes-program-crash

  Can I use CMEM instead of shareregion to achieve this function?

  Thanks.

  • Hi Yu,

    The IPC between Linux and a remote processor running BIOS on AM57xx is based on rpmsg transport and not the SharedMemory transport that is used between a BIOS to BIOS case.

    The rpmsg transport is processor-copy based, so the message gets copied into the transport buffer and copied out on the receiving side. The max rpmsg transport payload size is 496 bytes.

    CMEM can be used if you want to share large buffers that won't fit into the rpmsg transport payload. You would have to pass the pointer to your buffer in a regular message.

    Please see the Big Data IPC example at software-dl.ti.com/.../index_examples_demos.html  

    regards

    Suman 

  • Thanks for your reply.

    I tried to use a DDR3 pointer that can be accessed by both ARM and DSP cores, but the DSP crashed and reported an error

    Am I understanding something wrong?

  • Hi Yu,

    The DSP is behind an MMU, so the DSP virtual address for a given buffer may not be the same as its physical address.

    Please refer to the Big Data IPC example I pointed in the previous response.

    regards

    Suman