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.

[参考译文] F28M36P63C2:看门狗复位后出现共享 RAM 初始化问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1054356/f28m36p63c2-shared-ram-initialization-problem-after-watchdog-reset

器件型号:F28M36P63C2

您好!

看门狗复位后、使用 M3子系统初始化某些共享 RAM 块时出现问题。

这是我的代码。 它在上电复位后工作、但在看门狗复位后卡在 while 环路中。

RAMMReqSharedMemAccess(0xF0, SX_M3MASTER);

// HWREG(RAM_CONFIG_BASE + RAM_O_MSXMSEL) read returns 0x0F

HWREG(RAM_CONFIG_BASE + RAM_O_MSXRTESTINIT1) |= 0x5500;
while((HWREG(RAM_CONFIG_BASE + RAM_O_MSXRINITDONE1) & 0x5500) != 0x5500)
{
}

您有什么想法吗? 提前感谢!

此致、
Tamas

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

    您好!

    我们已将您的查询指派给模块专家。 您很快就会收到回复。

    谢谢、此致、

    Veena

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

    您好、Veena、
    谢谢、此致、
    Tamas

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

    Markus、

    您能评论一下看门狗复位是来自主(M3)子系统还是来自控制系统吗?  如果这是来自 CNMIWD、则不会重置主器件侧的任何锁定(如果已完成)。  您还需要检查在上述操作之后代码中是否对该存储器或 TESTINIT1寄存器本身的写保护进行了任何更改。  如果是这样、那么对寄存器的写入或存储器的初始化都将被阻止、因此我们永远无法获得初始化完成。

    如果看门狗位于主器件侧、则应激活外部 XRSn 信号、并完全复位整个器件、相当于上电复位。  由于您提到不同的复位具有不同的行为、因此我认为上述情况的某些方面必须如此。

    让我知道您找到的内容、然后我们就可以从这里开始了。

    最棒的

    Matthew

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

    Matthew、您好!

    我忘记禁用写保护。 上电复位后、它不会导致任何问题、并且错误未被注意到。 即使在 M3看门狗复位后、此代码也能正常工作:

        unsigned long tmp = HWREG(SYSCTL_MWRALLOW);
        HWREG(SYSCTL_MWRALLOW) = 0xA5A5A5A5;
    
        HWREG(RAM_CONFIG_BASE + RAM_O_MSXRTESTINIT1) |= init_bits;
    
        HWREG(SYSCTL_MWRALLOW) = tmp;
    
        while ((HWREG(RAM_CONFIG_BASE + RAM_O_MSXRINITDONE1) & init_bits) != init_bits) {
        }

    感谢你的帮助!

    此致、
    Tamas