一種新的單片機(jī)“看門狗”電路軟件設(shè)計(jì)方法
另外,為了消除可能的“喂狗”誤動作,建議對所應(yīng)用的用戶程序進(jìn)行徹底仔細(xì)的檢查,以防程序錯(cuò)亂時(shí)生成多余的SETB P1.0(指令碼 D290H)或者CLR P1.0(指令碼 C290H)指令。利用通用編程軟件(如EDIT)的查找功能可搜索用戶程序在LST文件中的“90”字符串,就能方便地找到所有可能的非法“SETB P1.0或CLR P1.0”指令,然后用NOP指令將其分離開來就可以了。如
ROM地址 指令碼 源程序
……
0306 C2 MOV A,#0C2H
0308 901000 MOV DPTR,#1000H
……
B4D290 CJNE A,#0D2H,STEP1
……
0401 B4D290 CJNE A,#0D2H,STEP1
0494 00 STEP1:NOP
……
可以修改為
……
0306 74C2 MOV A,#0C2H
0308 00 NOP
0309 901000 MOV DPTR,#1000H
……
0402 B4D291 CJNE A,#0D2H,STEP1
0405 00 NOP
……
0496 00 STEP1:NOP
……
其它情況下可以靈活處理,以使其消除以上兩種可以出錯(cuò)的組合即可。
通過采取以上幾種措施,對于沒有二級中斷嵌套的用戶系統(tǒng),能夠絕對安全地受到監(jiān)控而不會“死機(jī)”;對于有二級中斷嵌套的用戶系統(tǒng),也可大大提高其可靠性。當(dāng)然,一個(gè)單片機(jī)系統(tǒng)能夠準(zhǔn)確可靠地運(yùn)行,除了不“死機(jī)”,還需保護(hù)數(shù)據(jù)免受干擾,這屬于軟件容錯(cuò)、數(shù)據(jù)冗余、系統(tǒng)重入等范疇,這里不作介紹。
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
電路相關(guān)文章:電路分析基礎(chǔ)
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評論