Freescale MKL16Z1288VF4 芯片調試接口
WDOG監視內部系統操作,並在發生故障時強制復位。它可以運行在一個獨立的1 kHz低功率振蕩器,具有可編程刷新窗口,以檢測程序流或系統頻率的偏差。
看門狗計時器保持一個時間在系統上運行,並重置它,以防其故障。
COP 時鐘有 1KHZ時鐘 和總線時鐘兩個來源。
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次方 個周期。
選擇總線時鐘源後,可以通過設置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超時時間。
編寫0x55和0xaa(按該順序)重置COP超時計數器,寫入任何其他值將生成系統重置。
下面的寄存器可以查看系統重置原因;
Freescale MKL16Z1288VF4 芯片調試接口