看门狗定时器的喂狗时间和多APP看门狗的问题请教

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
JeHa_3912621
Level 3
Level 3
25 replies posted 10 replies posted 10 questions asked

参考例程,在看门狗定时器时间的配置上,我看到如下函数:

/* Step 3- Write match value */

#if(WDT_DEMO == WDT_INTERRUPT_DEMO)

Cy_WDT_SetMatch(WDT_MATCH_COUNT);

#else

Cy_WDT_SetMatch(0);

#endif

我想问的是如果我想自己配置看门狗复位的时间,在哪里配置。  

2.另外:

           如果我在我的app1里面加入了看门狗, 我的app0没有喂狗操作。 当我的程序有app1跳转到app0后,是否会因为不喂狗而导致复位。 另外我的app1如果引起了看门狗复位,那么是复位到app0的入口开始执行还是复位到app1的入口开始执行。

0 点赞
1 解答
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

对于你目前使用的Free runninf WDT来说是最长的复位时间了,若需要把这个时间延长的话,需要使用Muti-counter WDT, 通过两个counter级联,counter1时钟源为counter所产生的中断,这样以counter0 match的时间为单位,可以配置任意长的时间。

MCWDT counters级联code example可以参考 - https://www.cypress.com/documentation/code-examples/ce220061-psoc-6-mcu-multi-counter-watchdog-inter...

关于app1跳转到app0后看门狗复位的情况,我又核实了下,应该是会停止运行的,如你所说,只有跳转到app1后初始化后才会重新运行。

在原帖中查看解决方案

3 回复数
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

WDT复位的时间可以通过设置ignore bits 缩短, 但是没有办法延长 -

/* Step 2- Write the ignore bits - operate with full 16 bits */

Cy_WDT_SetIgnoreBits(0);

你说的WDT复位的情况是可能会发生的,如果app1引起了复位,会复位到app0的入口开始执行。

0 点赞

/* Step 2- Write the ignore bits - operate with full 16 bits */

Cy_WDT_SetIgnoreBits(0);

配置为0,已经是最长的值了? 我实际测试发现看门狗复位时间大概2~3秒。 那是不是看门狗复位的最长间隔也就是这么长了。

另外我还想确认一下,我的app1增加了看门狗复位的程序。如果我控制app1程序跳转到app0执行, 那我的app0也要增加喂狗的程序。  不然我的app0会经常性的发生复位?

Cy_Bootload_ExecuteApp(0);    这个函数无法禁止看门狗程序停止?  

我之前用的stm32做iap的时候,stm32的app1软件复位以后,会直接跳转到app0入口执行,并且类似于上电复位。看门狗会停止。 只有跳转到app1,初始化了看门狗后才会执行。 我想知道cy的是否也是这么做的? 或者如果不是这么做的,那我在程序执行过程中能否通过函数禁止看门狗程序继续执行?  谢谢!!

0 点赞
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

对于你目前使用的Free runninf WDT来说是最长的复位时间了,若需要把这个时间延长的话,需要使用Muti-counter WDT, 通过两个counter级联,counter1时钟源为counter所产生的中断,这样以counter0 match的时间为单位,可以配置任意长的时间。

MCWDT counters级联code example可以参考 - https://www.cypress.com/documentation/code-examples/ce220061-psoc-6-mcu-multi-counter-watchdog-inter...

关于app1跳转到app0后看门狗复位的情况,我又核实了下,应该是会停止运行的,如你所说,只有跳转到app1后初始化后才会重新运行。