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