<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種新的單片機(jī)“看門狗”電路軟件設(shè)計(jì)方法

          一種新的單片機(jī)“看門狗”電路軟件設(shè)計(jì)方法

          作者: 時(shí)間:2012-03-16 來(lái)源:網(wǎng)絡(luò) 收藏

          另外,為了消除可能的“喂狗”誤動(dòng)作,建議對(duì)所應(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指令將其分離開(kāi)來(lái)就可以了。如
          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ò)的組合即可。

          通過(guò)采取以上幾種措施,對(duì)于沒(méi)有二級(jí)中斷嵌套的用戶系統(tǒng),能夠絕對(duì)安全地受到監(jiān)控而不會(huì)“死機(jī)”;對(duì)于有二級(jí)中斷嵌套的用戶系統(tǒng),也可大大提高其可靠性。當(dāng)然,一個(gè)系統(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ī)工作原理



          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();