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.

[参考译文] 编译器/LAUNCHXL-F28379D:对于双 CPU 软件、我们如何共享函数和数据?

Guru**** 2535750 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/601152/compiler-launchxl-f28379d-for-dual-cpu-software-how-can-we-share-functions-and-data

器件型号:LAUNCHXL-F28379D
Thread 中讨论的其他器件:controlSUITE

工具/软件:TI C/C++编译器

直到我将我的项目从 F28377S 转换为 F28379D、我才意识到为2个 CPU 加载和运行代码所需的所有操作。 最大的惊喜之一是需要两个单独编译和链接的项目、这将使开发和测试速度大幅降低。 现在、我了解到每个 CPU 都有自己的 M0/1、D0/1和 LS0-5 RAM、并且它们共享 GS0-15。 由于 GS0-3低于64k 的限制、我相信、它们可以包含程序数据。 我所好奇的是、除了(显而易见的)在两个项目中包含相同的共享源代码外、如何确保共享函数和/或数据在 GS RAM 中占据相同的位置、以便两个 CPU 都可以指向它们? 关于共享数据、我正在考虑只读常量-我很显然会使用 IPC RAM 在两个 CPU 之间共享信息。

(另外、TI 编译器使对1个 CPU 进行编程变得简单、而且似乎可以通过 IDE/编译器自动执行加载两个 CPU 的所有步骤、包括具有共享和互补的内存 cmd 文件以及通用的 include)。

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

    尊敬的 Adam:

    您无法共享代码。 它仅用于共享数据。 这是因为具有 GSx RAM 块主所有权的 CPU 只能从该 GSx RAM 块执行代码。 要启用此功能、您必须通过 CPU1代码不断更改 GSx RAM 块的所有权(CPU2无法更改所有权)、这会使其变得有点复杂。

    Vivek Singh

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

    您可能感兴趣的一个功能是 Code Composer Studio 中的项目构建配置。 您可以为 CPU1/CPU2使用不同的构建配置、而不是为 CPU1/CPU2使用两个单独的工程。 您将看到这些示例在我们的 controlSUITE 代码中用作不同的 RAM/Flash 构建。 您可以对 CPU1/CPU2执行完全相同的操作。 这只是个人偏好的问题、但我发现这比维护两个单独的项目更简单。

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

    Vivek 和 Kris、

    谢谢你。 我忽略了代码段所有权的问题。 此外、我一直在使用进行 RAM /闪存构建配置、但我没有想到 CPU1与2。 但是、现在我无需 CPU2即可进行管理。

    -Adam

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

    请告诉我如何在两个 CPU 中下载代码? 我已按照控制套件文档进行下载、但在选择闪存配置、然后 CPU2代码未执行时出现问题。

    第二件事是如何从 CPU1到 CPU2访问数据?

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

    您好!

    如何在 CPU1中下载代码? 如果使用 CCS、则应能够通过选择 CPU2并加载代码来将代码加载到 CPU2中。  这不能正常工作吗? 另外、CPU2代码未执行意味着什么? 它是否卡在某个环路中?

    [引用]第二件事、如何从 CPU1访问 CPU2的数据? [/报价]

    如果数据位于共享 RAM (GSx RAM)中、则应能够使用绝对地址或变量名称访问该数据、但请确保使用#pragma 在 特定地址位置分配数据。

    此致、

    Vivek Singh

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

    我仅使用 ccs7。 您能否详细说明如何在两个 CPU 代码中下载。 我需要遵循哪些步骤。 因为我已经按照控制套件中提供的 TI 文档中的步骤操作。 TI 提供了仅在 RAM 中运行的代码。 我需要在 CCS 属性中更改哪些内容?

    请分享下载两个 CPU 代码的步骤。

    CPU 2代码未执行。 我已在 CPU2中下载 LED 闪烁 GPIO34的代码、但它无法正常工作。

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


    我为 CPU01构建了闪存独立项目

    然后、我为 CPU02构建了闪存项目

    我跟随 Vivek Singh 的线程进行 CPU02

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/553977

    我必须对电路板进行循环通电、以使第二个 LED 闪烁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Dnyaneshwar,我希望你能使它工作。 如有任何疑问、请告知我们。