24小時聯(lián)系電話:18217114652、13661815404
中文
技術(shù)專題
嵌入式系統(tǒng)中的自我測試
嵌入式系統(tǒng)中的自我測試
除非可用內(nèi)存完全耗盡,否則在嵌入式設(shè)計中實施某些自測試功能是值得的。
盡管現(xiàn)代電子產(chǎn)品非常可靠,但它們?nèi)匀蝗菀壮霈F(xiàn)故障。嵌入式系統(tǒng)中的故障大致可分為四類:
中央處理器
外設(shè)
記憶
軟件錯誤
如果 CPU 出現(xiàn)故障,則往往是硬故障。在這個系統(tǒng)中沒有自檢的可能性。CPU 出現(xiàn)部分故障的可能性很小。當(dāng)系統(tǒng)中有多個核心時,最好將一個核心分配為“主”,以便它可以監(jiān)控系統(tǒng)完整性。
移動測試
外設(shè)可能會以多種方式出現(xiàn)故障,但其中許多是特定于設(shè)備/應(yīng)用程序的。當(dāng)設(shè)備無法響應(yīng)其地址時,就會發(fā)生陷阱;必須包含一個陷阱處理程序來處理此故障。否則,通信設(shè)備通常包括“環(huán)回”模式,可以測試傳輸和接收以及相關(guān)的中斷。
內(nèi)存故障隨時可能發(fā)生。這種故障可能是暫時的——例如,一個位被經(jīng)過的宇宙射線翻轉(zhuǎn)。這種故障通常是無法檢測到的,可能會導(dǎo)致軟件崩潰。因此,適應(yīng)崩潰恢復(fù)是必不可少的。如果沒有收到地址響應(yīng),或者位停留在 0 或 1,則可能會出現(xiàn)硬故障。陷阱處理程序處理前者,但后者需要一些特定的測試。全面的內(nèi)存測試只能在設(shè)備啟動時進(jìn)行。移動測試是有效的。
堆棧保護(hù)詞
在設(shè)備運行時,可以對單個字節(jié)或字執(zhí)行模式測試,這可能會揭示某些類型的故障。
在現(xiàn)代設(shè)備中,軟件是最復(fù)雜的組件。即使軟件不會磨損,其復(fù)雜性也會導(dǎo)致在開發(fā)過程中難以檢測到的故障。好的防御性編碼技術(shù)可以幫助預(yù)測一些問題。
一般來說,有兩種類型的軟件錯誤:
數(shù)據(jù)損壞
代碼循環(huán)。
數(shù)據(jù)損壞可能是由指針誤用引起的,這很難檢測或預(yù)防,但也可能是數(shù)據(jù)結(jié)構(gòu)(如數(shù)組或堆棧)溢出的結(jié)果。插入“保護(hù)字”可以幫助在造成任何損壞之前檢測溢出。
代碼循環(huán)可以通過精心設(shè)計來解決——預(yù)防措施如等待設(shè)備超時——或者某種監(jiān)視無響應(yīng)代碼的看門狗設(shè)施(在硬件或軟件中)。