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 调试模式顺利开发了自己的项目,但他发现,当独立闪存启动时,F28386D 无法启动。
我发现当 CPU2处于重置状态时,CPU1尝试读取 CPU2_to_CPU1 MSGRAM0,然后 CPU1卡住时,我建议我的客户修改代码,在读取 MSGRAM0之前停用 CPU2重置,此问题已得到解决。
我的问题是,如果 CPU1读取 CPU2_to_CPU1 MSGRAMx,而 CPU2被保持在重置状态时,CPU1会发生什么情况?
此致,
-卢克
卢克,
客户是否检查 CPU1代码卡在哪里? 我想知道 CPU1代码是否需要 CPU2 MSGRAM 的特定值,从而陷入无限循环
此致,
马诺伊
马诺伊
代码是简单的 IF/ELSE C 语句,如下所示:
变量在 CPU2_to_CPU1 MSGRAM0中定义,CPU1 在执行 IF(variable .bit)语句时卡住,奇怪的是 CPU1并非总是卡住,只有大约50%的几率,这意味着如果我们重新启动系统10次,CPU1可能卡住5次。 当发生此问题时,XRSn 引脚将输出一个大约50us 每81毫秒的低脉冲,我们确信看门狗计时器已禁用,因此这不是看门狗计时器重置。
当 CPU2处于重置状态时,CPU1能否读取 CPU2_to_CPU1 MSGRAMx?
此致,
卢克
CPU2 MSGRAM 从 CPU2.SYSCLK 中用完。 对 CPU2.MSGRAM 的任何读取 都没有意义,因为 CPU2仍处于重置状态。 因此,这是一个无效的访问权限。 当 CPU2仍处于重置状态时,设计团队仍会说您不应该访问 MSGRAM。 因此,我们可能只是有一些附加信息,这些信息可能对客户不有用,而且可能没有任何价值。 如果你真的需要,我会检查一下 MSGRAM 的结果是什么。 但至少需要两周时间才能听到他们的声音。