使用手表狗没有重置

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
尼格利
离线
最后一次露面:3周1天前
加入:2018-03-20 08:24.
使用手表狗没有重置

嗨对话框

我使用ftreertos_rtt来测试看门狗函数,但看门狗超时时似乎没有重置。我定义了DG_CONFIGUSE_WDOG AS 1并注册了一个看门狗,但没有任何sys_watchdog_notify(wdog_id);以下是我的测试代码

// -----------测试代码-------------- //
静止void prvtemplateTask(空白* pvParameters)
{
os_tick_time xnextwaketime;
静态UINT32_T test_counter = 0;
Int8_t wdog_id;

xnextwaketime = os_get_tick_count();

wdog_id = sys_watchdog_register(false);//只有在没有任何看门狗的情况下注册看门狗

为了( ;; )
{
....................跳到粘贴
}

// ----------------------------------------------------------------------------

当电源重置时,我添加了GPIO高/低信号,但我只有一次没有任何由Whatchdog超时重置引起的任何重复信号的时间。
我该怎么办才能重置看门狗(如重置电源)?

此外,我想将最大看门狗超时扩展到2.6s到5秒,是否有可能这样做?

感谢您的帮助

设备:
PM_DIALOG.
离线
最后一次露面:6小时35分钟前
职员
加入:2018-02-08 11:03
嗨nigelyang,

嗨nigelyang,

默认情况下,代码将在开发模式下(1))中的堆栈获取堆栈。因此,当看门狗到期时,您应该在您自己的默认的NMI处理程序旁路。请查看以下代码片段。

#include“sys_watchdog.h”

#include“hw_watchdog.h”

void watcdog_cb(无符号long *异常_args)

{

printf(“退出看门狗\ n \ r”);

}

静止void prvtemplateTask(空白* pvParameters)

{

Int8_t wdog_id __attribute __((未使用));

sys_watchdog_init();

wdog_id = sys_watchdog_register(false);

/ *用自己的绕过默认的NMI处理程序!* /

hw_watchdog_register_int(watcdog_cb);

printf(“输入看门狗\ n \ r”);

为了 (;;) {

}

}

谢谢,PM_DIALOG.

尼格利
离线
最后一次露面:3周1天前
加入:2018-03-20 08:24.
嗨对话框

嗨对话框

我读取了DSP项目代码的System_Init()中的下面的设置。我不明白“闲置任务看狗”的目的是什么?

如果我在不使用“空闲任务观看狗”的情况下启用看门狗,系统似乎不起作用。感谢您的回答

#if dg_configuse_wdog.
//首先注册空闲任务。
idle_task_wdog_id = sys_watchdog_register(false);
assert_warning(idle_task_wdog_id!= -1);
sys_watchdog_configure_idle_id(idle_task_wdog_id);
#万一

PM_DIALOG.
离线
最后一次露面:6小时35分钟前
职员
加入:2018-02-08 11:03
嗨nigelyang,

嗨nigelyang,

如果您不使用空闲任务Wdog,则应在VAPplicationIdLehook()函数中注释出sys_watchdog_notify(idle_task_wdog_id)。否则,idle_task_wdog_id将是未定义的,将从未知值通知Wdog,并且将击中硬盘丢失。我们使用它,以便从空闲任务中通知WDOG。

谢谢,PM_DIALOG.

bobspam@free.fr.
离线
最后一次露面:4个月9小时前
加入:2018-06-20 08:07
你好

你好

如果您在看门狗代码中看到更深,还有两件事阻止它发生

- JTAG探测器用法

- #define dg_configimage_setup development_mode vs production_mode

两个调试都在看门狗的NMI处理程序中管理,它们通过断点替换重置,因此可以使用调试工具来分析看门狗的原因(使用硬件异常方法)。