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.

[参考译文] TMS320F28386D:当 CPU2处于重置状态时,CPU1读取 CPU2_to_CPU1 MSGRAM0。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1080064/tms320f28386d-cpu1-reads-cpu2_to_cpu1-msgram0-when-cpu2-is-held-in-reset

部件号:TMS320F28386D

嗨,香榭丽舍,

我的客户通过使用 CCS 调试模式顺利开发了自己的项目,但他发现,当独立闪存启动时,F28386D 无法启动。

我发现当 CPU2处于重置状态时,CPU1尝试读取 CPU2_to_CPU1 MSGRAM0,然后 CPU1卡住时,我建议我的客户修改代码,在读取 MSGRAM0之前停用 CPU2重置,此问题已得到解决。

我的问题是,如果 CPU1读取 CPU2_to_CPU1 MSGRAMx,而 CPU2被保持在重置状态时,CPU1会发生什么情况?

此致,

-卢克

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

    卢克,

    客户是否检查 CPU1代码卡在哪里? 我想知道 CPU1代码是否需要 CPU2 MSGRAM 的特定值,从而陷入无限循环

    此致,

    马诺伊

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

    马诺伊

    代码是简单的 IF/ELSE C 语句,如下所示:

    如果(variable.bit)为{
       //此处执行任务1
    }
    否则{
       //在此处执行任务2
    }

    变量在 CPU2_to_CPU1 MSGRAM0中定义,CPU1 在执行 IF(variable .bit)语句时卡住,奇怪的是 CPU1并非总是卡住,只有大约50%的几率,这意味着如果我们重新启动系统10次,CPU1可能卡住5次。 当发生此问题时,XRSn 引脚将输出一个大约50us 每81毫秒的低脉冲,我们确信看门狗计时器已禁用,因此这不是看门狗计时器重置。

    当 CPU2处于重置状态时,CPU1能否读取 CPU2_to_CPU1 MSGRAMx?

    此致,

    卢克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="114524" url="~ë/support/icc-intraners-group/c2f/c2000-微控制器-forum/1080064/tms320f28386d-CPU1-reads-CPU2_to_CPU1-msgram0-When-CPU2-is -held in 重置/4001511-当 CPMU1_CPU1]CPU1[#CPGRam0-When the CPU2-Is Presid-Presenter-reset-reset/CPMU[#CPCPU1]CPMU_CPU1]CPCPU1[#CPCPU1]CPCPU1[#CPCPU1]_CP

    CPU2 MSGRAM 从 CPU2.SYSCLK 中用完。 对 CPU2.MSGRAM 的任何读取 都没有意义,因为 CPU2仍处于重置状态。 因此,这是一个无效的访问权限。 当 CPU2仍处于重置状态时,设计团队仍会说您不应该访问 MSGRAM。 因此,我们可能只是有一些附加信息,这些信息可能对客户不有用,而且可能没有任何价值。 如果你真的需要,我会检查一下 MSGRAM 的结果是什么。 但至少需要两周时间才能听到他们的声音。