從規(guī)范完善的開發(fā)周期到嚴(yán)格執(zhí)行和系統(tǒng)檢查,開發(fā)高可靠性嵌入式系統(tǒng)的技術(shù)有許多種。本文介紹了7個易操作且可以長久使用的技巧,它們對于確保系統(tǒng)更加可靠地運行并捕獲異常行為大有幫助。
技巧1——用已知值填充ROM
軟件開發(fā)人員往往都是非常樂觀的一群人,只要讓他們的代碼忠實地長時間地運行就可以了,僅此而已。微控制器跳出應(yīng)用程序空間并在非預(yù)想的代碼空間中執(zhí)行這種情況似乎是相當(dāng)少有的。
然而,這種情況發(fā)生的機會并不比緩存溢出或錯誤指針失去引用少。它確實會發(fā)生!發(fā)生這種情況后的系統(tǒng)行為將是不確定的,因為默認情況下內(nèi)存空間都是0FF,或者由于內(nèi)存區(qū)通常沒有寫過,其中的值可能只有上帝才知道。
不過有相當(dāng)完備的linker或IDE技巧可以用來幫助識別這樣的事件并從中恢復(fù)系統(tǒng)。技巧就是使用FILL命令對未用ROM填充已知的位模式。
要填充未使用的內(nèi)存,有很多不同的可能組合可以使用,但如果是想建立更加可靠的系統(tǒng),最明顯的選擇是在這些位置放置ISR fault handler。
如果系統(tǒng)出了某些差錯,處理器開始執(zhí)行程序空間以外的代碼,就會觸發(fā)ISR,并在決定校正行動之前提供儲存處理器、寄存器和系統(tǒng)狀態(tài)的機會。