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.

[参考译文] CCS/TMS320F28379D:TMS320F28379D:使用全局共享 RAM 在2个 CPU 之间共享变量

Guru**** 2551110 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/690370/ccs-tms320f28379d-tms320f28379d-using-global-shared-ram-to-share-variables-between-2-cpus

器件型号:TMS320F28379D

工具/软件:Code Composer Studio

大家好、  

我正在使用 controlCARD TMS320F28379D。 我对全球共享 RAM 有一些问题。 正如我在 C2000 Ware 示例"RAM_MANAGEMENT"中看到的、数据数组通过命令#pragma DATA_SECTION ()分配给全局共享 RAM。 在 CPU1源代码文件中、定义了 CPU1_ARR 并调用了#pragma (CPU1_ARR、"SHARERAMGS0")。 然后、在 CPU2代码文件中调用<#pragma DATA_SECTION (CPU2_ARR、"SHARERAMGS0")、CPU2_ARR 将与 CPU1_ARR 相同。 这是正确的吗?

但是、在我的程序中、我只需要共享一些变量(5或6)、这些变量的大小为"unsigned int"、因此它需要非常少量的全局共享 RAM 块。 如何修改链接器文件或任何相关内容,以便仅分配 RAMGS0的一部分,例如存储共享变量?  

此致、
一个。  

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

    您好、

    [引用]我正在使用 controlCARD TMS320F28379D。 我对全球共享 RAM 有一些问题。 正如我在 C2000 Ware 示例"RAM_MANAGEMENT"中看到的、数据数组通过命令#pragma DATA_SECTION ()分配给全局共享 RAM。 在 CPU1源代码文件中、定义了 CPU1_ARR 并调用了#pragma (CPU1_ARR、"SHARERAMGS0")。 然后、在 CPU2代码文件中调用<#pragma DATA_SECTION (CPU2_ARR、"SHARERAMGS0")、CPU2_ARR 将与 CPU1_ARR 相同。 这是正确的吗?

    基本上、sharemsg0 ram 映射到 cpu1RArray & cpu2RWArray、在应用程序中、CPU2写入阵列、CPU1同步读取相同的数据。 同样、sharemsg1 ram 映射到 cpu2RArray & cpu1RWAArray、在应用程序中、CPU1写入阵列、CPU2 同步读取相同的数据。 此外、CPU2读取 cpu2RArray 上的数据(即 sharedmsg1)、对其进行修改并写入 cpu2RWArray、即 sharedmsg0、而 CPU1则读取该数据。

    [引用]但是、在我的程序中、我只需要共享一些变量(5或6)、它们的大小为"unsigned int"、因此它需要非常少量的全局共享 RAM 块。 如何修改链接器文件或任何相关内容,以便仅分配 RAMGS0的一部分,例如存储共享变量?  [/报价]

    您可以将多个变量分配给同一数据段、只要可以在段中容纳总体大小。例如

    uint32_t var1、var2;
    #pragma DATA_SECTION (var1、"SHARERAMGS0");
    #pragma DATA_SECTION (var2、"SHARERAMGS0");

    谢谢

    Vasudha

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

    Vasudha、您好!  

    我尝试了您的解决方案、但在查看.map 文件时、会随机分配变量、而不是按照我希望的顺序分配变量。 但是、我发现了一种解决方法、方法是将链接器文件的 RAMGS0除以 RAMGS0_1、RAMGS0_2等... 我的变量类型的长度。 然后、使用#pragma 宏、我根据需要将每个变量分配到每个段中。 而且、它运行得很好。  

    感谢您解决我的问题、  
    一个。