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:将两个 CPU 的代码存储在全局共享 RAM 中

Guru**** 2619215 points

Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/993410/tms320f28388d-hosing-code-of-both-cpus-in-global-shared-ram

器件型号:TMS320F28388D
Thread 中讨论的其他器件:SYSBIOS

您好!

我想创建一个项目、其中 SYSBIOS 在两个 CPU 上运行、两个 CLA 并行运行。 为此、我为 CLA 保留了本机共享 RAM、我正在尝试在两个 CPU 之间共享全局共享 RAM。

首先、我已将 GS0至7分配给 CPU1、将 GS8至15分配给 CPU2、但它不起作用。 然后、我只将 GS0提供给 CPU1、将 GS1提供给 CPU2、它运行得很好。 如果我以任意组合使用任何 GS0到 GS2扇区、则工程可以正常工作、 但对于任何不同扇区、程序 不能在使用 GS3到15扇区的任何 CPU 中正确加载。

前三个部门与其余部门之间是否有任何差异? 我已经阅读了数据表、没有看到任何东西、并且我已经调试了配置寄存器:GSxMSEL 已正确配置、允许所有存储器访问、并且未设置存储器错误闪存。

提前感谢!

此致、

Javier

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

    Javier 好、

    不能、除了不同的地址位置、所有 GSxRAM 都是相同的。 您是否能够通过 CCS 内存监视窗口读取/写入 GS2 RAM 以外的位置?  

    此致、

    Vivek Singh

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

    您好、Vivek、

    是的、我可以修改存储器浏览器中的值、并在"Expressions"窗口中读取该值。 在图片中、您可以看到 GS15中的一个示例。

    当我对两个 CPU 进行编程时、我必须同时复位这两个 CPU。 我必须重新启动并恢复 CPU1以配置 GS 存储器。 然后我重新启动 CPU2、它可以到达主函数、因为它卡在该循环中:

     在函数 TaskSupport_start()中,我看到了以下注释:

    /*
    * SP 寄存器在28x 上只有16位。 确保最后一个地址
    *新堆栈中的值小于0xFFFF
    *

    GS3扇区的位置是"origin = 0x010000"、那么它是否超出范围?  这些内存部分是否不能用于 SYSBIOS?

    此致、

    Javier

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

    Javier 好、

    是的、SP 在 C28x 器件上仅为16位、因此任何超过16位的地址范围都不能用作堆栈。

    此致、

    Vivek Singh

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

    您好!

    我已将 SYSBIOS 堆栈移至允许范围内的 DxRAM。  现在、它似乎在工作。

    谢谢!

    此致、

    Javier