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.

[参考译文] TMS320F28388D:F28388D CPU1/CPU2工作模式

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1045944/tms320f28388d-f28388d-cpu1-cpu2-working-mode

器件型号:TMS320F28388D
主题中讨论的其他器件: TMDSCNCD28388DC2000WARE

尊敬的专家:

在我的工作中、我将处理从 TMS320F2807x (Piccolo)到 TMS320F28388D 的移植。 我购买了 TMDSCNCD28388D。

 

目前、我能够通过 XDS200v2板载 USB 调试器将代码上载到闪存中、并在 CPU1上执行代码。

 

我希望通过利用双核的潜力来提高应用程序的性能。

因为我是初学者、所以我从 TI 示例中得到了提示。

 

在 PDK C2000Ware_3_04_00_00中、有几个项目示例。

我注意到、总是要 编译两个文件、每个文件用于特定的内核。

具体而言、每个项目包含:

  • 两个 C 语言代码文件(例如 dma_ex1_shared_periph_cpu1.c 和 dma_ex1_shared_periph_cpu2.c);
  • 两个链接器文件(例如2838x_flash_lnk_cpu1.cmd 和2838x_flash_lnk_cpu2.cmd);

…等等

 

因此、我想、为了使用两个内核、我应该编译 CPU1的文件并将其上传到核心 CPU1中;然后我应该对 CPU2执行相同的操作。

 

是否有一个示例、其中有一个适用于双核应用的独特项目?

  • g.一个单个 C 代码文件,我在其中决定在何处通过"ifdef CPU1" 和"ifdefCPU2"执行指令;
  • g.一个链接 器,在其中我通过“ifdef CPU1”和“ifdefCPU2”来决定数据的存储位置。

 

等待您的反馈。

此致。

Mik Brigante Sandeverino

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

    您好!

      C2000ware 中的所有双核示例都以2个单独的项目的形式提供-每个内核1个。 这些项目之间的唯一区别是预定义符号 CPU1/CPU2和所使用的链接器命令文件。 如果需要、您可以将它们组合到单个工程中-为每个内核提供单独的编译配置。 我们没有展示这一点的示例 projectspec。 但您可以使用现有的单核示例、并使用 CPU2预定义符号和更新的链接器命令文件添加新的构建配置。

    此致、

    Veena

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

    很抱歉、但这个答案对我们没有帮助。

    我们在创建应用程序时使用预定义的符号 CPU1和 CPU2创建了两个不同且独立的项目、包括它们自己的链接器、它们自己的外设、它们自己的时间中断。

    下一步必须是将所有文件放在单个 Code Composer 项目下、使用通用链接器并在并行模式下管理 发往每个 CPU 的外设、中断和源代码。

    我们的问题源于这一需求、因此我们向您询问了具体的应用示例。 但如果你从未详细地讨论过这个问题,答案是过于笼统和不一致的。

    我们自己已经得出了这些抽象的理论指标、我们真诚地希望 TI 专家能够为我们带来更重要的附加值。

    不过,我们感谢你的快速答复。

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

    您好!

    遗憾的是、我们没有在 C200ware 中使用单个 CCS 项目的双核示例。

    我还想补充的是、所有双核示例、即使我们有单独的项目、我们也使用完全相同的 drivelib.lib 或其他源文件。 差异主要由 CPU1/CPU2预定义进行处理。 (链接器 cmd 文件和 main.c 除外、我们将它们作为单独的文件提供)。 无论它是构建为2个不同的 CCS 工程、还是在单个工程中构建2个不同的编译配置、最后我们为每个内核提供2个单独的.outs - 1个、我相信生成的.outs 在这两种情况下都应该理想地相同。

    您能帮助我了解一下在单个项目中同时使用两者的优势吗? 是否需要更好的代码维护? 如果存在差距、我们绝对可以向 C2000ware 团队提出要求、以添加这样的示例。

    此致、

    Veena

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

    尊敬的 Veena Kamath:

    目前、我们使用 TMS320F28388D 控制卡、通过 XDS200v2板载 USB 调试器管理闪存中的代码上载。

    这只是 我们工作中的一个初步步骤。

    一旦代码在评估板上运行良好、我们将迁移到基于微控制器 F28388D 的定制电子板。

    因此、我们将没有调试器。

    我们将通过 唯一的自定义引导加载程序“写入”闪存。

    如果 C2000ware 小组还提供不同的工作和开发示例、更复杂、更结构化、这显然是有用的、因为在实践中、这些是公司真正的经营条件。

    老实说、我相信目前提供的示例过于简单、更适合高中学生、而不适合真正的软件设计人员。

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

    尊敬的 Mik:  

    F2838x SCI 闪存内核在 C2000Ware_4_00_00_00中提供、可用于在不使用 JTAG 的情况下将固件写入闪存。  

    这是 C2000Ware 中到内核的路径:C2000Ware_4_00_00_00\driverlib\f2838x\examples\C28x_dual\flash_kernel

    内核所需的主机端编程器路径:C2000Ware_4_00_00_00\utilities\flash_programmers\serial_flash_programmer

    本应用手册介绍了闪存内核的功能、并包含有关 F2838x 内核和使用说明的部分: https://www.ti.com/lit/an/sprabv4e/sprabv4e.pdf

    CPU1内核通过 ROM 中的 SCI 引导加载程序流入、可用于将 CPU1的固件写入闪存。 然后、CPU1内核可用于在 CPU2内核中进行流处理。 CPU1内核在将 SCI 的控制权写入 RAM 后将其传输到 CPU2内核。 之后、CPU2内核将能够将 CPU2的固件写入闪存。

    谢谢、  

    Anu