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.

[参考译文] RTOS/TMS320TCI6608:IPC 调试

Guru**** 2933120 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/663097/rtos-tms320tci6608-ipc-debugging

器件型号:TMS320TCI6608

工具/软件:TI-RTOS

尊敬的香榭丽舍

我的客户希望使用 IPC 框架实施 IPC、但它没有奏效。

是否有"DEBUG"选项可打印 IPC 调试的调试信息?

请告诉我客户如何高效地调试 IPC?

在我的客户案例中,即使 IPC_START()函数也无法正常工作。 我认为他们的 cfg 文件中应该有问题。

您可以检查他们的 cfg 文件吗?

e2e.ti.com/.../dsp.cfg.txt

我客户的软件是

IPC 版本:1.22.05.27
- SYS/BIOS:6.31.04.27

-XDC 工具:  xdctools_3_20_08_88

谢谢、此致、

SI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的香榭丽舍

    我发现之前的 cfg 文件中没有与 IPC 相关的配置、并且在添加 IPC 后再次附加了该配置。

    e2e.ti.com/.../dsp_5F00_ipc.cfg.txt

    IPC_ATT()函数的错误代码为'-11'-'IPC_E_NotReady',您能猜测出现此错误的原因吗?

    我客户的代码如下所示。

    MAIN ()

    #ifdef IPCAPI_TEST1
    //IPCAPI 0113
    SDM_MemoryPrintf ("core%d:调用 IPC_start()、uCoreId);
    如果((IpcStatus=IPC_START())<0){
    SDM_MemoryPrintf ("core%d:IPC 启动失败:%d\n"、uCoreId、IpcStatus);

    其他

    int MID、rid、nWait=0、status;
    SDM_MemoryPrintf ("core%d IPC Attach Start\n"、uCoreId);
    MID=MultiProc_self();
    SDM_MemoryPrintf ("core%d MultiProc_self():%d\n"、uCoreId、MID);
    如果(MID)为{
    Task_sleep (1);
    RID = 0;
    }否则{
    RID = 1;

    SDM_MemoryPrintf ("core%d IPC attach start\n"、uCoreId);
    while ((status=IPC_Attach (RID))< 0 &&++nWait < 1000){
    int i;
    Task_sleep (1);
    for (i=0;i < 5000;i++);

    IpcAttachStatus =状态;
    SDM_MemoryPrintf ("核心%d IPC 连接完成。 %d\n"、uCoreId、IpcAttachStatus);

    SDM_MemoryPrintf (“core%d:IPC_start()完成。 RET=%d、IpcAttachStatus:%d\n"、uCoreId、IpcStatus、IpcAttachStatus);
    #endif

    // Init_GateMP ();//IPCAPI 结束--移动到 DownloadSchedulingThread.c

    BIOS_start();

    谢谢、此致、

    SI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    而且、我发现他们仅为 DSP4和 DSP5启用了 IPC。 是否可以仅将 IPC 用于 DSP4和 DSP5的2个 DSP 内核?

    谢谢、此致、
    SI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    [引用]是否可以仅将 IPC 用于 DSP4和 DSP5的2个 DSP 内核[/引用]

    是的、这应该是可能的。

    您有 MultiProc.setConfig("CORE4"、["CORE4"、"CORE5"]);。 您能否尝试在 SharedRegion.setEntryMeta 中更改以下行:"ownerProId:0"。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!

    您是说"OwnerProcId:0"应该更改为"OwnerProcId:4"、因为主机内核是 DSP4?
    请解释"OwnerProcId"的含义吗?

    谢谢、此致、
    SI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!

    即使他们更改为"OwnerProcId:4"、也仍然存在问题。

    我怀疑下面他们只使用 Core4和 Core5、我担心没有内核具有'rid = 1'。
    您是否同意这是一个问题?

    如果(MID)为{
    Task_sleep (1);
    RID = 0;
    }否则{
    RID = 1;



    谢谢、此致、
    SI