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.

[参考译文] C2000WARE:为 TMS320F28379D 刷写双核工程

Guru**** 2692745 points

Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1584795/c2000ware-flashing-a-dualcore-project-for-tms320f28379d

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

大家好:

如何在微控制器 TMS320F28379D 上成功刷写双核工程、我目前一无所知。 你可以找到我的两个 CMD 文件和我的 system_init ()(在 global.c 内)函数,我在每个内核 main () 的开头直接调用它。 在我的项目中、我使用了 empty_project 双核模板。 对于刷写、我使用 XDS 110 调试探针和 CCS 20.2。

我的工作流程如下:“Flash CPU2 project“->"Flash CPU1“ CPU1 Project“。 这时会出现 IPC_SYNC 无法正常工作的问题。 CPU1 被卡住、等待 CPU2 发出标志。  

我已经尝试了多次调整。 让我感到惊讶的是、该模板将相同的闪存端口同时关联到 CPU1 和 CPU2 工程。 我给每个 CPU 项目自己的端口、但它没有解决我的问题、因此我恢复到我的初始 cmd 文件。 如何使我的双核工程正常工作? 提前感谢您的帮助。

最好的、Lucas

文件:
2837xD_FLASH_lnk_cpu1.txt
2837xD_FLASH_lnk_cpu2.txt
global.c  

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

    Lucas、

    每个内核上可用的闪存独立于另一个内核、因此即使地址相同、也会访问器件上物理上不同的存储器。  因此、如果每个内核使用相同的闪存地址、则不会出现问题。

    全局共享 RAM 是在两个内核之间完全共享的唯一通用存储器资源、需要注意如何在系统中使用该存储器以避免冲突等

    就运行双核示例而言、两个内核都连接在一起会有点棘手。  在实践中(即未连接调试器)、CPU2 保持在复位状态、直到 CPU1 释放。  但是、我相信、如果您使用 CCS 连接到 CPU2 并“运行“、它将开始执行、而无需等待 CPU1 释放。  但是、它随后应该进入 IPC 部分并向 CPU1 确认它已完成其引导过程。

    在您将两个内核的代码加载完毕后、您能否尝试断开 CPU2、然后运行 CPU1 以查看是否获得了正确的 IPC 命令?  或者、当您连接到两个内核时、我会尝试首先运行 CPU1、然后运行 CPU2、或单步执行 CPU2 代码以确认 IPC 部分已执行、然后返回 CPU1 以记录通信是否成功。

    如果您可以确认您正在尝试哪个 C2000 Ware 示例、我可以看看是否可以在 LauchPad 上复制来帮助进行调试。

    此致、
    Matthew

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

    MatthewPate 、

    现在一切都如我所希望的那样正常运行。 非常感谢您的帮助。

    最好的、Lucas