讓高可靠性嵌入式系統(tǒng)的開發(fā)更簡單的幾個技巧
對一個可靠的系統(tǒng)而言,建立一個強大的看門狗系統(tǒng)是很重要的。由于有太多的技術,難以在這幾個段落中完全涵蓋,但針對此一議題,筆者未來還會發(fā)表相關的文章。
技巧7 - 避免易失存儲器分配
不習慣在資源有限環(huán)境下工作的工程師,可能會試圖使用其編程語言的特性,這種語言讓他們可以使用易失存儲器分配。畢竟,這是一種常在計算器系統(tǒng)中使用的技術,在計算器系統(tǒng)中,只有在有必要時,內(nèi)存才會被分配。例如,以C開發(fā)時,工程師可能傾向于使用malloc來分配在堆(heap)上的空間。有一個操 作會執(zhí)行,一旦完成,可以使用free將被分配的內(nèi)存返回,以便堆的使用。
在資源受限的系統(tǒng),這可 能是一場災難!使用易失存儲器分配的其中一個問題是,錯誤或不當?shù)募夹g可能會導致內(nèi)存泄漏或內(nèi)存碎片。如果出現(xiàn)這些問題時,大多數(shù)的嵌入式系統(tǒng)并沒有 資源或知識來監(jiān)視堆或妥善地處理它。而當它們發(fā)生時,如果應用程序提出對空間的要求,但卻沒有所請求的空間可以使用,會發(fā)生什么事呢?
使用易失存儲器分配所產(chǎn)生的問題是很復雜的,要妥善處理這些問題,可以說是一個噩夢!一種替代的方法是,直接以靜態(tài)的方式,簡化內(nèi)存的分配。例如,只要在 程序中簡單地建立一個大小為256字節(jié)長的緩沖區(qū),而不是經(jīng)由malloc請求這樣大小的內(nèi)存緩沖區(qū)。此一分配的內(nèi)存可在整個應用程序的生命周期期 間保持,且不會有堆或內(nèi)存碎片問題方面的顧慮。
結(jié)論
這些都只是一些可以讓開發(fā)人員開始建立更可靠嵌入式系統(tǒng)的方法。另外還有很多其他技術,例如利用良好的編碼標準、位翻轉(zhuǎn)的監(jiān)測、執(zhí)行數(shù)組和指針邊界檢查,及使用斷言等。所有這些技術都是讓設計者可以開發(fā)出可靠性更高嵌入式系統(tǒng)的秘訣。
評論