技巧5 - 使用MPU
在過去,是很難在一個小而廉價的微控制器中找到內(nèi)存保護單元(MPU)的,但這種情況已經(jīng)開始改變。現(xiàn)在從高端到低端的微控制器都已經(jīng)有MPU,而這些MPU為嵌入式軟件開發(fā)人員提供了一個可以大幅提高其固件(firmware)魯棒性(robustness)的機會。
MPU 已逐漸與操作系統(tǒng)耦合,以便建立內(nèi)存空間,其中的處理都分開,或任務(wù)可執(zhí)行其代碼,而不用擔(dān)心被stomped on。倘若真有事情發(fā)生,不受控制的處理會被取消,也會執(zhí)行其他的保護措施。請留意帶有這種組件的微控制器,如果有,請多加利用它的這種特性。
技巧6 - 建立一個強大的看門狗系統(tǒng)
你經(jīng)常會發(fā)現(xiàn)的一種總是最受喜愛的看門狗(watchdog)實現(xiàn)是,在看門狗被啟用之處(這是一個很好的開始),但也是可以用周期性定時器將該看門狗清零之處;定時器的啟用是完全與程序中出現(xiàn)的任何情況隔離的。
使用看門狗的目的是協(xié)助確保如果出現(xiàn)錯誤,看門狗不會被清零,即當(dāng)工作暫停,系統(tǒng)會被迫去執(zhí)行硬件重設(shè)定(hardware reset),以便恢復(fù)。使用與系統(tǒng)活動獨立的定時器可以讓看門狗保持清零,即使系統(tǒng)已失效。
對應(yīng)用任務(wù)如何整合到看門狗系統(tǒng)中,嵌入式開發(fā)人員需要仔細考慮和設(shè)計。例如,有種技術(shù)可能可以讓每個在一定時期內(nèi)運行的任務(wù)標(biāo)示它們可以成功地完成其任 務(wù)。在此事件中,看門狗不被清零,強制被復(fù)位。還有一些比較先進的技術(shù),像是使用外部看門狗處理器,它可用來監(jiān)視主處理器如何表現(xiàn),反之亦然。