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.

MessageQ issues ARM->DSP0->DSP1->DSP2->DSP3->DSP4->DSP5->DSP6->DSP7->ARM link

Hi,

I want to establish a link using MessageQ like  ARM->DSP0->DSP1->DSP2->DSP3->DSP4->DSP5->DSP6->DSP7->ARM

But couldn't see any example like that. only example that is a little related to it is image processing demo.  that has communication flow like that.

ARM<->DSP0

ARM<->DSP1

ARM<->DSP2

ARM<->DSP3

ARM<->DSP4

ARM<->DSP5

ARM<->DSP6

ARM<->DSP7

So I decided to do something like that

ARM->DSP0->ARM->DSP1->ARM->DSP2->ARM->DSP3->ARM->DSP4->ARM->DSP5->ARM->DSP6->ARM->DSP7->ARM.

But when Itry to that I got 2 problems.

1- Most of the time Not a single message is received at any DSP.

2- If messages are received, after a certain number of messages next message are not received.

Attaching code and cfg files. I have gone through 3-4 IPC examples but nothing like that is implemented .

Regards

post.zip

  • e2e.ti.com/.../367381
    i found this link....
    Please refer to last comment. Is it true?
  • Hi Rao,

    With reference to this link, e2e.ti.com/.../367381, the processor SDK 2.0.2 was not available . BUt now, Processor SDK 2.0.2 is available which has the following list of IPC examples.You will find it under IPC 3_42_00_02.

    1. ex44_compute,

    2. ex02_MessageQ

    3. ex45_host

    4. ex46_graph - Consumer-producer example.

    Out of these examples, you can refer ex44_compute.

    1. ex44_compute  example - In this example, the IPC happens between ARM-DSP0, ARM-DSP1, ARM-DSP2...... upto ARM-DSP7. This example will be suitable for your experiment.

    The following is the output log which shows the communication between ARM to other DSP cores.

    =====================================================================================

    root@k2hk-evm:/ex44_binaries/ex44_compute/host/bin/debug# ./app_host

    ResMgr_threadFxn: -->

    ResMgr_setup: -->

    App_threadFxn: -->

    App_setup: -->

    ResMgr_setup: initalizing IPC

    App_setup: initalizing IPC

    ResMgr_setup: IPC ready, status=0

    App_setup: IPC ready, status=1

    ResMgr_setup: <-- status=0

    ResMgr_exec: -->

    ResMgr_exec: waiting for message

    App_setup: cluster baseId=0, cluster members:

    App_setup:  0 HOST

    App_setup:  1 CORE0

    App_setup:  2 CORE1

    App_setup:  3 CORE2

    App_setup:  4 CORE3

    App_setup:  5 CORE4

    App_setup:  6 CORE5

    App_setup:  7 CORE6

    App_setup:  8 CORE7

    App_setup: MessageQ_open(PEB_Proc1)

    App_setup: PEB queue: proc=CORE0, qid=0x00010089

    App_setup: MessageQ_open(Control_Proc1)

    App_setup: Control queue: proc=CORE0, qid=0x00010088

    App_setup: MessageQ_open(PEB_Proc2)

    App_setup: PEB queue: proc=CORE1, qid=0x00020089

    App_setup: MessageQ_open(Control_Proc2)

    App_setup: Control queue: proc=CORE1, qid=0x00020088

    App_setup: MessageQ_open(PEB_Proc3)

    App_setup: PEB queue: proc=CORE2, qid=0x00030089

    App_setup: MessageQ_open(Control_Proc3)

    App_setup: Control queue: proc=CORE2, qid=0x00030088

    App_setup: MessageQ_open(PEB_Proc4)

    App_setup: PEB queue: proc=CORE3, qid=0x00040089

    App_setup: MessageQ_open(Control_Proc4)

    App_setup: Control queue: proc=CORE3, qid=0x00040088

    App_setup: MessageQ_open(PEB_Proc5)

    App_setup: PEB queue: proc=CORE4, qid=0x00050089

    App_setup: MessageQ_open(Control_Proc5)

    App_setup: Control queue: proc=CORE4, qid=0x00050088

    App_setup: MessageQ_open(PEB_Proc6)

    App_setup: PEB queue: proc=CORE5, qid=0x00060089

    App_setup: MessageQ_open(Control_Proc6)

    App_setup: Control queue: proc=CORE5, qid=0x00060088

    App_setup: MessageQ_open(PEB_Proc7)

    App_setup: PEB queue: proc=CORE6, qid=0x00070089

    App_setup: MessageQ_open(Control_Proc7)

    App_setup: Control queue: proc=CORE6, qid=0x00070088

    App_setup: MessageQ_open(PEB_Proc8)

    App_setup: PEB queue: proc=CORE7, qid=0x00080089

    App_setup: MessageQ_open(Control_Proc8)

    App_setup: Control queue: proc=CORE7, qid=0x00080088

    App_setup: start message sent: procId=1 qid=0x00010088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=1

    ResMgr_exec: message sent: qid=0x00010088

    ResMgr_exec: waiting for message

    App_setup: start message sent: procId=2 qid=0x00020088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=2

    ResMgr_exec: message sent: qid=0x00020088

    ResMgr_exec: waiting for message

    App_setup: start message sent: procId=3 qid=0x00030088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=3

    ResMgr_exec: message sent: qid=0x00030088

    ResMgr_exec: waiting for message

    App_setup: start message sent: procId=4 qid=0x00040088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=4

    ResMgr_exec: message sent: qid=0x00040088

    ResMgr_exec: waiting for message

    App_setup: start message sent: procId=5 qid=0x00050088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=5

    ResMgr_exec: message sent: qid=0x00050088

    ResMgr_exec: waiting for message

    App_setup: start message sent: procId=6 qid=0x00060088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=6

    ResMgr_exec: message sent: qid=0x00060088

    ResMgr_exec: waiting for message

    App_setup: start message sent: procId=7 qid=0x00070088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=7

    ResMgr_exec: message sent: qid=0x00070088

    ResMgr_exec: waiting for message

    App_setup: start message sent: procId=8 qid=0x00080088

    ResMgr_exec: message received, cmd=1

    ResMgr_exec: cmd=REQUEST, sender=8

    ResMgr_exec: message sent: qid=0x00080088

    ResMgr_exec: waiting for message

    App_setup: TransportQMSS instance created

    App_setup: <-- status=0

    App_exec: -->

    App_exec: message sent to PEB queue: qid=0x00010089

    App_exec: message sent to PEB queue: qid=0x00020089

    App_exec: message sent to PEB queue: qid=0x00030089

    App_exec: message sent to PEB queue: qid=0x00040089

    App_exec: message sent to PEB queue: qid=0x00050089

    App_exec: message sent to PEB queue: qid=0x00060089

    App_exec: message sent to PEB queue: qid=0x00070089

    App_exec: message sent to PEB queue: qid=0x00080089

    App_exec: message sent to Compute queue: qid=0x00010082

    App_exec: message sent to Compute queue: qid=0x00020082

    App_exec: message sent to Compute queue: qid=0x00030082

    App_exec: message sent to Compute queue: qid=0x00040082

    App_exec: message sent to Compute queue: qid=0x00050082

    App_exec: message sent to Compute queue: qid=0x00060082

    App_exec: message sent to Compute queue: qid=0x00070082

    App_exec: message sent to Compute queue: qid=0x00080082

    App_exec: <-- status=0

    App_destroy: -->

    App_destroy: <--

    App_threadFxn: <-- status=0

    main: application thread as terminated

    ResMgr_exec: <-- status=0

    ResMgr_destroy: -->

    ResMgr_destroy: <--

    ResMgr_threadFxn: <-- status=0

    main: appStatus=0

    main: rmStatus=0

    main: <-- status=0

  • Does it have DSP-DSP communication too?
  • Hi Rao,

    In example, ex46_graph, combinations such as ARM-DSP0, DSP0-DSP1, DSP-ARM and lot more combinations are demonstrated as a Producer-combiner-transformer-consumer

    In this example, you can use any DSP cores and communicated between DSP- DSP, DSP-ARM, ARM-DSP etc.

    These are the combinations I tried and it worked for me.

    I have attached the steps on how to run this example on the target. For compiling this example, you can refer to the readme.txt enclosed insise the package./cfs-file/__key/communityserver-discussions-components-files/791/6505.ex46_5F00_log.txt