WDOG cannot use 8-bit sequence refresh

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

WDOG cannot use 8-bit sequence refresh

ソリューションへジャンプ
774件の閲覧回数
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 解決策
678件の閲覧回数
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 返答(返信)
45件の閲覧回数
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

679件の閲覧回数
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 件の賞賛
返信
622件の閲覧回数
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%E3%81%AF8%E3%83%93%E3%83%83%E3%83%88%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%83%AA%E3%83%95%E3%83%AC%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2363091%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ES32K144%E3%81%AE%E3%82%A6%E3%82%A9%E3%83%83%E3%83%81%E3%83%89%E3%83%83%E3%82%B0%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%818%E3%83%93%E3%83%83%E3%83%88%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%924%E5%9B%9E%E8%A1%8C%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%8216%E3%83%93%E3%83%83%E3%83%88%E3%81%A832%E3%83%93%E3%83%83%E3%83%88%E3%81%AF%E3%81%A9%E3%81%A1%E3%82%89%E3%82%82%E8%A8%B1%E5%AE%B9%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%818%E3%83%93%E3%83%83%E3%83%88%E3%81%AF%E8%A8%B1%E5%AE%B9%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E5%86%99%E7%9C%9F%E3%81%AB%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B8%E3%83%93%E3%83%83%E3%83%88%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E6%96%B9%E6%B3%95%E3%82%92%E8%A9%A6%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81%E3%81%99%E3%81%B9%E3%81%A6%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E5%85%83%E3%81%AE%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%81%A8%E3%81%8A%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E6%9B%B4%E6%96%B0%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%81%AF%3CBR%20%2F%3E%E2%80%A2%202%20%E3%81%A4%E3%81%AE%2016%20%E3%83%93%E3%83%83%E3%83%88%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%20(0xA602%E3%80%810xB480)%20%E3%81%BE%E3%81%9F%E3%81%AF%204%20%E3%81%A4%E3%81%AE%208%20%E3%83%93%E3%83%83%E3%83%88%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%20(0xA6%E3%80%810x02%E3%80%810xB4%E3%80%81%3CBR%20%2F%3E%200x80)%20WDOG_CS%5BCMD32EN%5D%E3%81%8C0%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%82%3CBR%20%2F%3E%20%E2%80%A2%20WDOG_CS%5BCMD32EN%5D%E3%81%8C1%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%8132%E3%83%93%E3%83%83%E3%83%88%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%8C1%E5%9B%9E%E8%A1%8C%E3%82%8F%E3%82%8C%E3%81%BE%E3%81%99%EF%BC%880xB480_A602%EF%BC%89%E3%80%82%3CBR%20%2F%3E%20CNT%E7%99%BB%E9%8C%B2%E7%B0%BF%E3%81%B8%E3%80%82%E4%B8%A1%E6%96%B9%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%AFWDG%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E5%89%8D%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%81%9D%E3%81%86%E3%81%A7%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%81%3CBR%20%2F%3E%E3%82%A6%E3%82%A9%E3%83%83%E3%83%81%E3%83%89%E3%83%83%E3%82%B0%E3%81%8CMCU%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%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%E6%9B%B4%E6%96%B0%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E3%80%81%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%3CBR%20%2F%3E%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%80%82%E3%81%9D%E3%81%86%E3%81%A7%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%80%81%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E4%BA%8B%E5%AE%9F%E4%B8%8A%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8B%3CBR%20%2F%3E%E6%9B%B4%E6%96%B0%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%80%81%E6%9B%B4%E6%96%B0%E5%89%8D%E3%81%AB%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%3CBR%20%2F%3E%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E5%AE%8C%E4%BA%86%E3%80%82%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%81%8C%E7%B5%82%E4%BA%86%E3%81%97%E3%81%9F%E3%82%89%E3%80%81%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%82%92%E5%BE%A9%E5%85%83%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3E%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%88%B6%E5%BE%A1%E7%8A%B6%E6%85%8B%E3%80%82%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%8F%82%E8%80%83%E6%83%85%E5%A0%B1%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%E7%8A%AC%E3%81%AB%E9%A4%8C%E3%82%92%E4%B8%8E%E3%81%88%E3%82%8B%E5%89%8D%E3%81%A8%E5%BE%8C%E3%81%AB%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%81%8C%E9%81%AE%E6%96%AD%E3%81%95%E3%82%8C%E3%81%9F%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E5%90%8C%E3%81%98%E3%82%B7%E3%83%8A%E3%83%AA%E3%82%AA%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6%E3%80%81%E7%B5%A6%E7%B4%99%E9%A0%86%E5%BA%8F%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%80%8116%E3%83%93%E3%83%83%E3%83%88%E7%B5%A6%E7%B4%99%E6%96%B9%E5%BC%8F%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AE%E3%81%BF%E6%88%90%E5%8A%9F%E3%81%97%E3%81%9F%E3%81%8C%E3%80%818%E3%83%93%E3%83%83%E3%83%88%E7%B5%A6%E7%B4%99%E6%96%B9%E5%BC%8F%E3%81%AF%E5%A4%B1%E6%95%97%E3%81%97%E3%80%818%E3%83%93%E3%83%83%E3%83%88%E7%B5%A6%E7%B4%99%E9%A0%86%E5%BA%8F%E3%81%AE%E8%AA%BF%E6%95%B4%E3%81%AF%E5%8A%B9%E6%9E%9C%E3%81%8C%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%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%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F254513%22%20target%3D%22_blank%22%3E%40GXY%20%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%82%3C%2FP%3E%0A%3CP%3EWDOG%E3%81%AF8%E3%83%93%E3%83%83%E3%83%88%E3%81%AE%E3%83%AA%E3%83%95%E3%83%AC%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AB%E9%9D%9E%E5%B8%B8%E3%81%AB%E6%95%8F%E6%84%9F%E3%81%A7%E3%81%99%E3%80%82%E6%A8%99%E6%BA%96C%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8CSTRB%E5%91%BD%E4%BB%A4%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%A7%E3%82%82%E3%80%81%E3%83%90%E3%82%A4%E3%83%88%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%AE%E9%96%93%E3%81%AB%E6%8C%BF%E5%85%A5%E3%81%95%E3%82%8C%E3%82%8B%E8%BF%BD%E5%8A%A0%E3%81%AE%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%84%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E5%86%8D%E3%83%AD%E3%83%BC%E3%83%89%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%80%81%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%81%8C%E5%A4%B1%E6%95%97%E3%81%99%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%83%88%E3%81%AAGCC%E3%82%A4%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%80%818%E3%83%93%E3%83%83%E3%83%88%E3%81%AE%E3%83%AA%E3%83%95%E3%83%AC%E3%83%83%E3%82%B7%E3%83%A5%E5%87%A6%E7%90%86%E3%81%8C%E7%A2%BA%E5%AE%9F%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%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%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%83%80%E3%83%8B%E3%82%A8%E3%83%AB%3C%2FP%3E%3C%2FLINGO-BODY%3E