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.

[参考译文] RTOS/TM4C1292NCPDT:默认硬件看门狗计时器超时值

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/725185/rtos-tm4c1292ncpdt-default-hardware-watchdog-timer-timeout-value

器件型号:TM4C1292NCPDT

工具/软件:TI-RTOS

您好!

启用硬件复位时、默认的硬件看门狗计时器超时值是多少?  

我的系统工作频率为120 MHz。

我正在尝试使用 Watchdog_setReload ()函数更改 WDT 超时值的周期,但它不会生效。

我是否可以知道原因?

下面是代码片段。

Watchdog_Params_init (wdtParams);
wdtParams.callbackFxn =(Watchdog_Callback) WatchdogCallbackFxn;
wdtParams.resetMode = Watchdog_reset_on;
wdtHandle = Watchdog_open (Board_WATCHDOG0、wdtParams);
if (wdtHandle == NULL){
System_printf ("打开看门狗时出错!\n");
ISystem_flush();
} 

//这是用于从任务上下文中设置新超时值的调用。

Watchdog_setReload (wdtHandle、vlaime);

此致

巴拉

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

    查看数据表、看门狗计时器的默认值看起来是0xFFFF.FFFF。

    关于看门狗问题、您能否查看这篇文章中 Todd 所做的工作、看看这是否也适用于您的项目? e2e.ti.com/.../2405757
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph、

    感谢你的答复。

    [引用 USER="Ralph Jacobi"]查看数据表、看着看门狗计时器的默认值将是0xFFFF.FFF我的系统以120MHz 的频率运行。 因此、超时应~35秒... 但实际上并非如此。 超时在秒内发生。

    此致

    巴拉

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

    我看到一些 E2E 帖子提到1秒超时、但数据表中找不到任何东西来证实这一点。 它可能是将其设置为1秒的 TivaWare 设置、但我无法跟踪发生的清晰点。 另一种可能是 ROM 设置、尽管检查该设置需要很长时间、但我认为它不会为您提供解决问题的价值。

    有关默认设置的详细信息、您是否查看了我链接的帖子?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph Jacobi、

    我已经完成了上述职务,对此我没有多少澄清。

    1.当 CPU 挂起/执行某个无限循环时,硬件 WDT 回调函数是否会被调用?

    2.我的要求是在发生 HW WDT 超时时时时需要重置设备。 根据 e2e 线程、它必须执行回调函数以更改 WDT 超时周期、并且其中一个 WDT 参数应为 RESET_OFF。 那么、何时将其设置为在 WDT 超时且具有新的重新加载值时复位?

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

    看门狗驱动程序的默认看门狗超时由 Watchdog_HWAttrs 结构(在 EK-.c 文件中)中的.reloadValue 字段进行指定。

    const WatchdogTiva_HWAttrs watchdogTivaHWAttrs[EK_TM4C129EXL_WATCHDOGCOUNT]={

      {

        baseAddr = WATCHDOG0_BASE、

        .intNum = INT_Watchdog、

        .intPriority =(~0)、

        .reloadValue = 80000000 //默认80MHz 时钟频率下的1秒周期

      }、

    };

    在80、000、000中的大多数产品文件中的默认值。  您可以更改此默认值,也可以使用 Watchdog_setReload ()更改周期。

      Watchdog_setReload (watchdogHandle、240000000);

    如果您希望看门狗复位您的器件(而不是调用回调)、则应按如下方式打开看门狗:

      /*创建并启用禁用复位的看门狗*/

      Watchdog_Params_init (params);

      params.resetMode = Watchdog_reset_on;

      WatchdogHandle = Watchdog_open (Board_WATCHDOG0、&params);

      if (watchdogHandle == NULL){

        System_abort ("打开看门狗时出错!\n");

      }

    这将导致看门狗在看门狗过期时复位器件。