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:只有一个内核起作用-链接器问题? 闪存设置?

Guru**** 2611155 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1062651/tms320f28379d-only-one-core-works---linker-issue-flash-settings

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

您好、

我正在使用 F28379D 双核。 我的两个内核的代码都在工作。

如果我首先刷写 CPU1并在 CPU2之后刷写、则只有来自 CPU2的代码正常工作。 另一种解决方法是相同的问题、如果我先刷写 CPU2、然后刷写 CPU1、则只有 CPU1上的代码正常工作。

我必须使用哪些设置、两个内核上的代码都可以正常工作?

我使用的是来自 MATLAB 的默认命令文件、Embedded Coder Support Package c28377D.cmd。

我在"Debug"->"Flash settings"中选择了 CPU2。

我不确定 C2000编译器和 C2000链接器的这些标志是否正确。 因为有提到的 CPU1。

提前感谢

此致

Stefan

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

    Stefan、

    C2000Ware SDK 提供了一个小示例、展示了如何为 CPU1和 CPU2进行闪存、以及如何在独立模式下运行。 示例位于:

    C:/ti/c2000/C2000Ware_4_00_00_00/driverlib/f2837xd/examples/dual/led

    导入项目时、它将有两个项目、一个用于 CPU1、另一个用于 CPU2。 对于 CPU1、请选择配置  CPU1_FLASH_standalone、对于 CPU2、请选择  CPU2_FLASH 配置。 它应该针对两个内核进行闪存。 CPU1_FLASH_standalone 中的关键点是它从闪存引导 CPU2。 请查看代码。

    在您熟悉设置后、请查看 MathWorks 项目中的链接器命令文件。 您可能需要将问题直接发布到 MathWorks 论坛以获得更快的响应。

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

    你是对的。

    这似乎是 MATLAB Embedded Coder 中的一个错误。

    尽管在硬件设置中选择了核心 CPU2、但代码生成似乎不会处理此问题。 (如上面屏幕截图中的标志所示)

    我在 C28379D 闪烁示例中复制了完整的 Simulink 模型、现在它可以工作了。