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.

EVMK2H 66AK2H IPC GateMP Linux (HLOS)

Other Parts Discussed in Thread: SYSBIOS

I'm trying to share some memory between the ARM (Linux) and DSP (SYSBIOS) and want some sort of gate / semaphore.  I'm using IPC 3.42.00.02.

The GateMP module does not exist for the default linux libraries (I can't link), and I am unable to recompile IPC with GateMP support (CFLAGS="-DGATEMP_SUPPORT" make -f ipc-linux.mak config; make) -- I get linker errors looking for GateMP.


Is the GateMP module not supported under Linux (the IPC docs don't call it SYSBIOS only)?

Is there some other gate / semaphore I should attempt to use to synchronize between ARM and DSP?

  •  Is the GateMP module not supported under Linux (the IPC docs don't call it SYSBIOS only)?

    It should support on Linux. Only early IPC 3.x release support only on BIOS.

    Thank you.

  • Hi Anthony,

    Anthony said:
    I'm trying to share some memory between the ARM (Linux) and DSP (SYSBIOS) and want some sort of gate / semaphore. I'm using IPC 3.42.00.02.

    Is there some other gate / semaphore I should attempt to use to synchronize between ARM and DSP?


    The semphore mechanism is also used to synchronize the communication between cores ( DSP and ARM ). Please refer to the source code of "control.c" in the ex44_compute example of IPC 3.42.00.02.

    You will find the semaphore usage and routines in the ex44_compute example which demonstrate the IPC communication between ARM and DSP. Once you install the IPC, you will find the example located at path: ~/ipc_3_42_00_02/examples/TCI_6638_linux_elf/ex44_compute/dsp

    Please have a look and revert if it doesn't serve the purpose.
  • Thanks for your reply. I took a look at control.c and it looks to me that the semaphores used in the ex44_compute example are only used on a single core. There is also no code that runs on the host (linux) that references the semaphore module at all. The semaphore in control.c (named Control_sem) seems to only be pended on, and never released anywhere (right after the pend it looks like the application exits). Did i misinterpret the example?