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.

[参考译文] TMS320F28379D:在 RAM 中启动 CPU2程序

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1441012/tms320f28379d-starting-cpu2-program-in-ram

器件型号:TMS320F28379D

工具与软件:

您好!

由于其他 TI 工具存在问题(大规模生产中有20%的错误)、我编写一个在 RAM 中运行的引导加载程序、并将程序写入闪存。
我已经为 CPU1开发了有效的解决方案、现在我卡在了 CPU2上。

我将 CPU2的程序下载到 RAMGS4中。  
如何让 CPU2执行该代码?
CPU2应处于 WaitBoot 中。

我需要从 CPU1执行此操作。

此致、
Piotr Romaniuk

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

    我的错。
    我使用了错误的寄存器来发送跳转地址(IPCRECVADDR)。
    它应该是 CPU1站点上的 IPCSENDADDR。

    Fullscreen
    1
    2
    3
    IpcRegs.IPCSENDADDR = 0x10000; // jump address
    IpcRegs.IPCSENDCOM = IPC_BRANCH;
    IpcRegs.IPCSET.all = (IPC_FLAG0 | IPC_FLAG31);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、
    Piotr Romaniuk

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

    尊敬的 Piotr:

    感谢您告知我们您解决了这个问题。 未来、我建议您查看有关 IPC 模块的 C2000 Academy 培训。  https://dev.ti.com/tirex/explore/node?node=A__AEIJm0rwIeU.2P1OBWwlaA__C28X-ACADEMY__1sbHxUB__LATEST 

    此致、

    Ozino

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

    感谢 Ozino 为我指出该学院。

    因为我有 Linux 内核经验、所以我使用源代码浏览和分析。
    因此、C2000-Ware 中的示例和 BootROM 的源代码对我非常有用。

    当然我会访问学院。

    此致、
    Piotr Romaniuk