為什么要加看門狗?
1:要講系統(tǒng)的可靠性,首先要講系統(tǒng)安全保證機制的可靠性,對于MCU系統(tǒng)來說,養(yǎng)DOG是其中最重要的一條
2:很多人可能要講,我沒養(yǎng)DOG,我的系統(tǒng)也很可靠,所以看門狗沒有必要。這是一種不需要反駁的觀點,從理論上來講,養(yǎng)狗安全系數(shù)肯定會高一些;
3:在系統(tǒng)里面養(yǎng)狗,狗本身電路也是存在失效可能性的,在上面有人曾講到MAX813翹了,這就屬于這種情況,MAX813還屬于比較好的,過去很多人經(jīng)常用到的25045,內(nèi)部集成了EE等資源,這東西不怎的,很容易被干擾得自己掛了。
4:很多人在爭執(zhí)系統(tǒng)里面應(yīng)該如何養(yǎng)狗,很多人片面的以為狗一定要在主循環(huán)里面養(yǎng)才是最好的,在這里不得不說說hotpower的中斷養(yǎng)狗論了,當年hotpower為了證明那些人的說法是何其錯誤,整出了一個中斷養(yǎng)狗論,很多人根本沒看懂hotpower想要表達的真實含義,從原理上講,hotpower其實要表達的是:要想養(yǎng)一條忠實聽話的好狗,在哪個地方養(yǎng)根本不重要,在哪個地方養(yǎng)都可以達到最好的效果,真正重要的是要注意軟體返回的各個路徑,在異常的時候,要通過條件互駁,讓狗起來看家。
5:雖然hotpower中斷養(yǎng)狗的方法也可以達到比較好的看家效果,但俺卻是一個主循環(huán)養(yǎng)狗的堅定擁護者,原因無它,第一:主循環(huán)養(yǎng)狗簡單明了;第二:主循環(huán)養(yǎng)狗比較省代碼,第三:不管是中斷還是主循環(huán)養(yǎng)狗,實現(xiàn)條件互駁,這只狗都一樣忠實。
6:在這里不得不說程序結(jié)構(gòu),那種流水帳的程序結(jié)構(gòu),不管是中斷還是主循環(huán)養(yǎng)狗,結(jié)果都是一樣:養(yǎng)了一只癩皮狗!關(guān)于這一點,如果誰有不同意見,可以提出來討論討論
7:這些都做好了有什么用呢?
一個再忠實的狗,也只能是系統(tǒng)的一部分,在礦安產(chǎn)品中有一個說法叫:本安型,也就是本質(zhì)安全性,當然,MCU系統(tǒng)是無法實現(xiàn)本安性的,所以需要看家的DOG,但系統(tǒng)的根本依然是要努力提高系統(tǒng)本身的安全性,一個再好的看門狗動作處理,也只能是盡量恢復(fù)現(xiàn)場,并且,系統(tǒng)也絕不能總是出現(xiàn)保護的行為,如果這樣,將是一個不可原諒的設(shè)計……
這就又延伸到電路設(shè)計和PCB設(shè)計甚至工藝設(shè)計等等問題,這不是這個主題帖討論的范圍,所以,俺也不說了……
DOG是為了防止不知道哪天出現(xiàn)的竊賊的,對付已知出現(xiàn)的竊賊,最好的辦法就是直接拿棍子轟倒……
對于一個系統(tǒng),通過測試只是盡可能模擬實際可能出現(xiàn)的干擾,顯然:從數(shù)學(xué)的概率講,不能涵蓋100%的情況,并且,一個產(chǎn)品可能大批量的被眾多不同類型用戶使用,所以,測試條件的樣本抽取本就不可能重現(xiàn)100%現(xiàn)實狀況。
一句胡說八道的理論:如果你的系統(tǒng)產(chǎn)生復(fù)位,說明你的設(shè)計不行,改好設(shè)計就可以,所以沒有必要要看門狗……
本人懶得反駁,看應(yīng)和者居然眾多,避免錯誤的理論誤人子弟,必須以證視聽:
我已經(jīng)講過多次了,測試只是一種必要不充分的條件,請認真理解這個來自數(shù)學(xué)的概念……
沒有測試,只能通過在實際使用條件下的試用來檢驗設(shè)計,這樣的設(shè)計更加是不充分的測試,而且,這樣的測試只能更加無序的浪費時間和精力……
看來,21ICBBS里面,江湖郎中比較多……
評論