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.

[参考译文] TMS570LS3137:在 dwInit()之前调用 dwreset()会导致处理器复位

Guru**** 2601915 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/745338/tms570ls3137-call-to-dwdreset-prior-to-dwdinit-causes-processor-to-reset

器件型号:TMS570LS3137

我发现 在  通过调用 dwInit()和 dwdCounterEnable()配置看门狗计时  器之前调用 dwdReset()会导致处理器复位。 为什么会这样、我可以做什么来防止复位?

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

    您好、Hugh、

    对于数字窗口式看门狗、任何在时间窗口之外服务看门狗的尝试、或者在时间窗口中服务看门狗的失败、都会导致看门狗生成一个到 CPU 的复位或者 NMI。 看门狗反应寄存器的默认值为 CPU 复位(0x5)。 如果您在看门狗窗口打开(或启用了 DWD 计数器)之前向 WDKEY 寄存器写入密钥、则会出现启动时窗口违规、导致 CPU 复位(默认)。

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

    您好 Qt、

    感谢您关注窗口式看门狗行为。 但是、由于我不使用此功能、因此神秘感依然存在。 这似乎正是 WDT 的行为方式、因此在 DWD 计数器未启用时、必须避免写入密钥序列。 幸运的是、我们可以通过读取 DWD 控制寄存器来确定计数器是否被禁用、即

    if (0x5312ACED = rtiREG1->DWDCTRL)

     //不要写入密钥序列


    当我这么做时、一切都很好。

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

    你是对的。 这是避免该问题的方法。