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.

AM5708: IPC

Part Number: AM5708

Hi,

SDK: ti-processor-sdk-rtos-am57xx-evm-04.03.00.05

Customer built ipc_3_47_01_00\examples\DRA7XX_linux_elf\ex02_messageq successfully. Since there is only one c66x core in am5708, he removed the DSP2 related parts in makefile, config.bld, ipc.cfg.xs.

config.bld:

Build.platformTable["ti.platforms.evmDRA7XX:dsp2"] =
Build.platformTable["ti.platforms.evmDRA7XX:dsp1"];,

ipc.cfg.xs:

var procNameAry = ["HOST""IPU2""IPU1""DSP1"];

When running ./app_host DSP1, it promts:

--> main:
--> Main_main:
--> App_create:
App_create: Failed opening MessageQ
<-- App_create:
<-- Main_main:
<-- main:

If only keeping the DSP2 part, the program can successfully run on DSP1. When compiling ipc, do we need to specify which processor it is?

  • Hi Nancy,

    You can skip building the DSP2 by commenting the Build.platformTable["ti.platforms.evmDRA7XX:dsp2"], but changing the procNameAry will require you to also modify the Linux-side library. The MultiProc list should exactly be the same on all participating cores, otherwise the MultiProc id list will vary. This id is incorporated into MessageQ object ids and in MessageQ headers, and any mismatch will result in non-functional code.

    The MultiProc for Linux is configured in the SysLink daemon. Please see the file linux/src/daemon/cfg/MultiProcCfg_dra7xx.c in the IPC source code.

    The SDK builds use a unified filesystem for all AM57xx devices, so it is recommended to not change the procNameAry. The DSP2 device is not created on the Linux kernel for AM571x/AM570x SoCs, so it will be a no-op.

    regards

    Suman