WDOG cannot use 8-bit sequence refresh

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

WDOG cannot use 8-bit sequence refresh

跳至解决方案
769 次查看
GXY
Contributor III

I am unable to use 4 8-bit writes to refresh the watchdog of S32K144. Both 16 bit and 32-bit are acceptable, but 8-bit is not. I tried the 8-bit writing method in the picture, but it all failedThe original manual is as follows:

The refresh write sequence can be
• either two 16-bit writes ( 0xA602, 0xB480) or four 8-bit writes (0xA6, 0x02, 0xB4,
0x80) if WDOG_CS[CMD32EN] is 0;
• one 32-bit write (0xB480_A602) if WDOG_CS[CMD32EN] is 1.
to the CNT register. Both methods must occur before the WDG timeout; otherwise, the
watchdog resets the MCU.

 

0 项奖励
回复
1 解答
673 次查看
db16122
Contributor III

Before starting the refresh sequence, disable the global
interrupts. Otherwise, an interrupt could effectively invalidate
the refresh sequence, if the interrupt occurs before the refresh
writes finish. After the sequence finishes, restore the global
interrupt control state.  FYI for interrupt checking

在原帖中查看解决方案

0 项奖励
回复
3 回复数
40 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

Hi @GXY,

The WDOG supports an 8-bit refresh sequence, but it is highly timing-sensitive. Even if standard C code generates STRB instructions, the sequence can fail due to additional stack accesses or address reloads inserted between the byte writes. Using a compact GCC inline assembly block helps ensure the 8-bit refresh executes reliably.

static inline void WDOG_Refresh8_AsmInline(void)
{
 __asm volatile(
 // "mrs r2, PRIMASK \n"
 // "cpsid i \n"
 // "dsb \n"

 "ldr r0, =0x40052004 \n"

 "movs r1, #0xA6 \n"
 "strb r1, [r0, #1] \n"

 "movs r1, #0x02 \n"
 "strb r1, [r0, #0] \n"

 "movs r1, #0xB4 \n"
 "strb r1, [r0, #1] \n"

 "movs r1, #0x80 \n"
 "strb r1, [r0, #0] \n"

 // "dsb \n"
 // "isb \n"
 // "msr PRIMASK, r2 \n"
 );
}

 

Regards,

Daniel

674 次查看
db16122
Contributor III

Before starting the refresh sequence, disable the global
interrupts. Otherwise, an interrupt could effectively invalidate
the refresh sequence, if the interrupt occurs before the refresh
writes finish. After the sequence finishes, restore the global
interrupt control state.  FYI for interrupt checking

0 项奖励
回复
617 次查看
GXY
Contributor III

I confirm that the switch was interrupted before and after feeding the dog. In the same scenario, only changing the feeding sequence and using the 16 bit feeding method succeeded, but the 8-bit feeding method failed, and adjusting the order of the 8-bit feeding sequence did not work.

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2363091%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EWDOG%20%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%208%20%E4%BD%8D%E5%BA%8F%E5%88%97%E5%88%B7%E6%96%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2363091%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%204%20%E4%B8%AA%208%20%E4%BD%8D%E5%86%99%E5%85%A5%E6%9D%A5%E5%88%B7%E6%96%B0%20S32K144%20%E7%9A%84%E7%9C%8B%E9%97%A8%E7%8B%97%E3%80%8216%20%E4%BD%8D%E5%92%8C%2032%20%E4%BD%8D%E9%83%BD%E5%8F%AF%E4%BB%A5%E6%8E%A5%E5%8F%97%EF%BC%8C%E4%BD%86%208%20%E4%BD%8D%E4%B8%8D%E8%A1%8C%E3%80%82%E6%88%91%E5%B0%9D%E8%AF%95%E4%BA%86%E5%9B%BE%E7%89%87%E4%B8%AD%E7%9A%84%208%20%E4%BD%8D%E5%86%99%E5%85%A5%E6%B3%95%EF%BC%8C%E4%BD%86%E9%83%BD%E5%A4%B1%E8%B4%A5%E4%BA%86%EF%BC%9A%3C%2FP%3E%3CP%3E%E5%A6%82%E6%9E%9C%20WDOG_CS%5BCMD32EN%5D%E4%B8%BA%200%EF%BC%8C%E5%88%B7%E6%96%B0%E5%86%99%E5%85%A5%E5%BA%8F%E5%88%97%E5%8F%AF%E4%BB%A5%E6%98%AF%3CBR%20%2F%3E-%20%E4%B8%A4%E4%B8%AA%2016%20%E4%BD%8D%E5%86%99%E5%85%A5%20(0xA602%2C%200xB480)%20%E6%88%96%E5%9B%9B%E4%B8%AA%208%20%E4%BD%8D%E5%86%99%E5%85%A5%20(0xA6%2C%200x02%2C%200xB4%2C%3CBR%20%2F%3E0x80)%EF%BC%9B%E5%A6%82%E6%9E%9C%20WDOG_CS%5BCMD32EN%5D%E4%B8%BA%201%EF%BC%8C%E5%88%B7%E6%96%B0%E5%86%99%E5%85%A5%E5%BA%8F%E5%88%97%E5%8F%AF%E4%BB%A5%E6%98%AF%3CBR%20%2F%3E-%20%E4%B8%80%E4%B8%AA%2032%20%E4%BD%8D%E5%86%99%E5%85%A5%20(0xB480_A602)%E3%80%82%3CBR%20%2F%3E%E5%88%B0%20CNT%20%E5%AF%84%E5%AD%98%E5%99%A8%E3%80%82%E8%BF%99%E4%B8%A4%E7%A7%8D%E6%96%B9%E6%B3%95%E9%83%BD%E5%BF%85%E9%A1%BB%E5%9C%A8%20WDG%20%E8%B6%85%E6%97%B6%E4%B9%8B%E5%89%8D%E5%8F%91%E7%94%9F%EF%BC%9B%E5%90%A6%E5%88%99%EF%BC%8C%3CBR%20%2F%3E%E7%9B%91%E8%A7%86%E7%A8%8B%E5%BA%8F%E4%BC%9A%E9%87%8D%E7%BD%AE%20MCU%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2364476%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20WDOG%20cannot%20use%208-bit%20sequence%20refresh%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2364476%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%90%AF%E5%8A%A8%E5%88%B7%E6%96%B0%E5%BA%8F%E5%88%97%E5%89%8D%EF%BC%8C%E8%AF%B7%E7%A6%81%E7%94%A8%E5%85%A8%E5%B1%80%3CBR%20%2F%3E%E4%B8%AD%E6%96%AD%E3%80%82%E5%90%A6%E5%88%99%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%B8%AD%E6%96%AD%E5%8F%91%E7%94%9F%E5%9C%A8%E5%88%B7%E6%96%B0%3CBR%20%2F%3E%E5%86%99%E5%85%A5%E5%AE%8C%E6%88%90%E4%B9%8B%E5%89%8D%EF%BC%8C%E5%88%99%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%3CBR%20%2F%3E%E5%88%B7%E6%96%B0%E5%BA%8F%E5%88%97%E6%97%A0%E6%95%88%E3%80%82%E5%BA%8F%E5%88%97%E7%BB%93%E6%9D%9F%E5%90%8E%EF%BC%8C%E6%81%A2%E5%A4%8D%E5%85%A8%E5%B1%80%3CBR%20%2F%3E%E4%B8%AD%E6%96%AD%E6%8E%A7%E5%88%B6%E7%8A%B6%E6%80%81%E3%80%82%20%E4%B8%AD%E6%96%AD%E6%A3%80%E6%9F%A5%E6%8F%90%E7%A4%BA%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2365277%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20WDOG%20cannot%20use%208-bit%20sequence%20refresh%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2365277%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E7%A1%AE%E8%AE%A4%E5%9C%A8%E5%96%82%E7%8B%97%E4%B9%8B%E5%89%8D%E5%92%8C%E4%B9%8B%E5%90%8E%E9%83%BD%E4%B8%AD%E6%96%AD%E4%BA%86%E5%BC%80%E5%85%B3%E3%80%82%E5%9C%A8%E5%90%8C%E6%A0%B7%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E5%8F%AA%E6%94%B9%E5%8F%98%E8%BF%9B%E6%96%99%E9%A1%BA%E5%BA%8F%E5%92%8C%E4%BD%BF%E7%94%A8%2016%20%E4%BD%8D%E8%BF%9B%E6%96%99%E6%96%B9%E6%B3%95%E6%88%90%E5%8A%9F%E4%BA%86%EF%BC%8C%E4%BD%86%208%20%E4%BD%8D%E8%BF%9B%E6%96%99%E6%96%B9%E6%B3%95%E5%A4%B1%E8%B4%A5%E4%BA%86%EF%BC%8C%E8%B0%83%E6%95%B4%208%20%E4%BD%8D%E8%BF%9B%E6%96%99%E9%A1%BA%E5%BA%8F%E4%B9%9F%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2381320%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20WDOG%20cannot%20use%208-bit%20sequence%20refresh%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2381320%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%20%40G%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F254513%22%20target%3D%22_blank%22%3EXY%3C%2FA%3E%EF%BC%8C%3C%2FP%3E%0A%3CP%3EWDOG%20%E6%94%AF%E6%8C%81%208%20%E4%BD%8D%E5%88%B7%E6%96%B0%E5%BA%8F%E5%88%97%EF%BC%8C%E4%BD%86%E5%AF%B9%E6%97%B6%E5%BA%8F%E8%A6%81%E6%B1%82%E9%9D%9E%E5%B8%B8%E4%B8%A5%E6%A0%BC%E3%80%82%E5%8D%B3%E4%BD%BF%E6%A0%87%E5%87%86%20C%20%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%20STRB%20%E6%8C%87%E4%BB%A4%EF%BC%8C%E8%AF%A5%E5%BA%8F%E5%88%97%E4%B9%9F%E5%8F%AF%E8%83%BD%E7%94%B1%E4%BA%8E%E5%9C%A8%E5%AD%97%E8%8A%82%E5%86%99%E5%85%A5%E4%B9%8B%E9%97%B4%E6%8F%92%E5%85%A5%E4%BA%86%E9%A2%9D%E5%A4%96%E7%9A%84%E5%A0%86%E6%A0%88%E8%AE%BF%E9%97%AE%E6%88%96%E5%9C%B0%E5%9D%80%E9%87%8D%E6%96%B0%E5%8A%A0%E8%BD%BD%E8%80%8C%E5%A4%B1%E8%B4%A5%E3%80%82%E4%BD%BF%E7%94%A8%E7%B4%A7%E5%87%91%E7%9A%84%20GCC%20%E5%86%85%E8%81%94%E6%B1%87%E7%BC%96%E4%BB%A3%E7%A0%81%E5%9D%97%E6%9C%89%E5%8A%A9%E4%BA%8E%E7%A1%AE%E4%BF%9D%208%20%E4%BD%8D%E5%88%B7%E6%96%B0%E6%93%8D%E4%BD%9C%E8%83%BD%E5%A4%9F%E5%8F%AF%E9%9D%A0%E5%9C%B0%E6%89%A7%E8%A1%8C%E3%80%82%3C%2FP%3E%0A%3CBLOCKQUOTE%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Estatic%20inline%20void%20WDOG_Refresh8_AsmInline(void)%0A%7B%0A%20__asm%20volatile(%0A%20%2F%2F%20%22mrs%20r2%2C%20PRIMASK%20%5Cn%22%0A%20%2F%2F%20%22cpsid%20i%20%5Cn%22%0A%20%2F%2F%20%22dsb%20%5Cn%22%0A%0A%20%22ldr%20r0%2C%20%3D0x40052004%20%5Cn%22%0A%0A%20%22movs%20r1%2C%20%230xA6%20%5Cn%22%0A%20%22strb%20r1%2C%20%5Br0%2C%20%231%5D%20%5Cn%22%0A%0A%20%22movs%20r1%2C%20%230x02%20%5Cn%22%0A%20%22strb%20r1%2C%20%5Br0%2C%20%230%5D%20%5Cn%22%0A%0A%20%22movs%20r1%2C%20%230xB4%20%5Cn%22%0A%20%22strb%20r1%2C%20%5Br0%2C%20%231%5D%20%5Cn%22%0A%0A%20%22movs%20r1%2C%20%230x80%20%5Cn%22%0A%20%22strb%20r1%2C%20%5Br0%2C%20%230%5D%20%5Cn%22%0A%0A%20%2F%2F%20%22dsb%20%5Cn%22%0A%20%2F%2F%20%22isb%20%5Cn%22%0A%20%2F%2F%20%22msr%20PRIMASK%2C%20r2%20%5Cn%22%0A%20)%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FBLOCKQUOTE%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E4%B8%B9%E5%B0%BC%E5%B0%94%3C%2FP%3E%3C%2FLINGO-BODY%3E