Freescale MKL16Z1288VF4 芯片调试接口 随笔 第1张

WDOG监视内部系统操作,并在发生故障时强制复位。它可以运行在一个独立的1 kHz低功率振荡器,具有可编程刷新窗口,以检测程序流或系统频率的偏差。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第2张

看门狗计时器保持一个时间在系统上运行,并重置它,以防其故障。

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第3张

COP 时钟有 1KHZ时钟 和总线时钟两个来源。

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第4张

COP看门狗旨在在应用软件出现故障时强制重置系统 按预期执行。 防止系统从COP定时器复位(当它是 启用),应用软件必须定期复位COP计数器。 如果 应用程序丢失并且在超时之前无法重置COP计数器,a 生成系统重置以强制系统返回已知的起始点。

任何复位后,COP看门狗都会启用。 如果没有使用COP看门狗 应用程序,可以通过清除SIM_COPC [COPT]来禁用它。

下面的是喂狗操作: 在选定的超时期间,通过将0x55和0xaa(按该顺序)写入sim服务COP(SrvCOP)寄存器的地址来重置COP计数器。写入不会影响srvCOP寄存器中的数据。一旦写入序列完成,COP超时周期就会重新启动。如果程序无法在超时期间执行此重新启动,则微控制器将重置。此外,如果将0x55或0xaa以外的任何值写入srvCOP寄存器,则微控制器立即重置。

SIM_COPC[COPCLKS]选择用于COP计时器的时钟源。时钟源选项要么是总线时钟,要么是内部1 kHz时钟源。对于每个时钟源,相关的超时由SIM_COPC[COPT]控制。下表总结了SIM_COPCTRL[COPCLKS]和SIM_COPC[COPT]字段的控制功能。COP看门狗默认从1 kHz时钟源运行,最长超时是2的10次方 个周期。

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第5张

 

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第6张

 

选择总线时钟源后,可以通过设置SIM_COPC[COPW]进行窗口COP操作。在此模式下,写入SIM_SRVCOP以清除COP定时器必须发生在所选超时时间的最后25%。过早的写入会立即重置芯片。当选择1 kHz时钟源时,窗口COP操作不可用

下面这段很重要: COP计数器由对SIM_COPC的第一次写入和任何系统重置后初始化。后续写入SIM_COPC对COP操作没有任何影响。即使应用程序使用SIM_COPC[COPCLKS],SIM_COPC[COPT],和SIM_COPC[COPW]字段的重置默认设置,用户也应该在重置初始化期间写入写一次SIM_COPC寄存器以锁定设置。如果应用程序丢失,此方法可防止意外更改。

(翻译过来就是COP计数寄存器只能写入一次,这个过程可以是系统启动时设置,也可以是之后,但是只有一次写入的机会。)

  对于SIM_SRVCOP来说,服务(清除)COP计数器刷新不应该放在中断服务例程(ISR)中,因为即使主应用程序失败,ISR也可以继续定期执行。

如果所选时钟不是1 kHz时钟源,则在微控制器处于调试模式或系统处于停止(包括VLPS或LLS)模式时,COP计数器不会增加。当微控制器退出调试或停止模式时,COP计数器将恢复。

如果选择1 kHz时钟源,COP计数器在进入调试模式或停止模式(包括VLPs或LLS)时重新初始化为0。计数器在退出调试模式或停止模式时从0开始。

无论选择哪个时钟,当芯片进入VLLSx模式时,COP都会被禁用。在从VLLSx模式唤醒芯片的重置后,COP将被重新初始化并启用,就像任何重置一样。

 

COPT这个写一次字段选择COP的超时时间。COPT和COPCLKS字段一起定义COP超时时间。

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第7张

 

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第8张

编写0x55和0xaa(按该顺序)重置COP超时计数器,写入任何其他值将生成系统重置。

 下面的寄存器可以查看系统重置原因;

Freescale MKL16Z1288VF4 芯片调试接口 随笔 第9张 

 

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄