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.

[参考译文] TMS320F280025C:看门狗复位问题

Guru**** 2405675 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1161813/tms320f280025c-watchdog-reset-issue

器件型号:TMS320F280025C
Thread 中讨论的其他器件:SysConfig

您好!

当在代码中配置看门狗时、我有以下观察结果;

当我启用看门狗并在 SysConfig 窗口中配置看门狗以及在.asm 文件中启用看门狗时;我会观察到周期性复位、即使看门狗得到了正确的处理。

详细观察结果请参阅 e2e.ti.com/.../watchdog_5F00_reset_5F00_issue.pdfattached PDF;

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

    请共享为看门狗提供服务的生成代码。  

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

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

    您好、Vivek、

    您对此是否有任何更新?

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

    上面的快照是定期运行的函数,用于检查其他任务的计数器是否符合预期。

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

    Yogini、

    您的代码何时调用此函数?

    此致、

    Vivek Singh

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

    它已在计时器中断中定期调用

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

    您是否已检查计时器中断是否在正确的时间被调用。 您可以在计时器 ISR 中放置一个断点、然后查看 CPU 是否在那里暂停、然后单步执行 ISR、并查看 WD 是否按预期提供服务。

    此致、

    Vivek Singh

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

    是的、它正在得到正确的服务。 代码在调试模式下按预期工作(在.asm 中未启用 WDG 时)。 我在上面的 pdf 中捕获了所有场景的结果。 如果我在那里丢失了一些东西、请检查一下、

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

    看门狗在.asm 中不启用意味着什么? 您是指"codestartbranch.asm 文件。 如果是、则在独立模式下、代码甚至可能不会跳转到应用程序、并且 WD 甚至会在该模式之前发出复位命令。 为什么调试模式代码不同?

    此致、

    Vivek Singh

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

    您好、Vivek、

    是的,我指的是 codestartbranch.asm。 代码在调试模式和自由运行中没有不同。 它是相同的。 代码正在跳转到应用程序,因为其他功能在自由运行模式下工作正常。  

     我想知道、如果我在.asm 中启用 WDG 并在代码中正确处理、会导致控制器复位的原因是什么。

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

    我仍然不清楚。  "codestartbranch.asm 文件是应用程序代码的一部分、只有在连接调试器的情况下以及独立运行时才能执行、因此您应该看到相同的结果。 您在 CCS 项目中的入口点是什么?

    您的 cinit 代码初始化变量(变量可能太多)需要很长时间、因此即使在跳转到应用程序之前、WD 也会过期。 为避免这种情况  、您可以在"codestartbranch.asm 文件中禁用 WD、并仅在 main 内启用。

    此致、

    Vivek Singh

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

    您好、Vivek、

    我不确定如何在初始化后从 main 中启用 WDG。

    因为、在 board.c 中、已经有调用 WDG enable 的 WDG_init 函数。  

    但是、当我们在.asm 文件中禁用 WDG 时、将不会访问 XRSn 引脚。

    我想知道,当我在.asm 中禁用 WDG 时,如何从 main 中启用 WDG?

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

    您好!

    只需调用 main.c 内的 sysctl_enableWatchdog()函数即可启用看门狗。

    此致、

    Vivek Singh

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

    这个函数已经存在于 board.c 中、  

    因此,我刚刚从.asm 中禁用了 WDG,并强制生成了复位条件以观察复位引脚。 但遗憾的是、RESET 引脚保持高电平、即使在复位条件存在时也不会变为低电平。

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

    如何创建条件? 您是否在 CCS 寄存器视图中看到 WD 计数值发生变化?

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

    我不为看门狗提供服务、因此在3.2ms 超时(根据上述配置)后、它将复位。

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

    Yogini、

    您可能希望向我们发送示例 CCS 项目(如果可以)、我们可以在此处的设置中运行该项目以检查问题。

    此致、

    Vivek Singh

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

    如果您有要分享的示例项目,请告诉我们?