網站設計嵌入式开发技巧

網站設計嵌入式開發技巧一-使用MPU

在過去,是很難在一個小而廉價的微控制器中找到記憶體保護單元(MPU)的,但這種情況已經開始改變。現在從高端到低端的微控制器都已經有MPU,而這些MPU為嵌入式軟體發展人員提供了一個可以大幅提高其固件(firmware)魯棒性(robustness)的機會。

開發技巧

MPU已逐漸與作業系統耦合,以便建立記憶體空間,其中的處理都分開,或任務可執行其程式碼,而不用擔心被stomped on。倘若真有事情發生,不受控制的處理會被取消,也會執行其他的保護措施。請留意帶有這種組件的微控制器,如果有,請多加利用它的這種特性。

網站設計嵌入式開發技巧二-建立一個强大的看門狗系統

你經常會發現的一種總是最受喜愛的看門狗(watchdog)實現是,在看門狗被啟用之處(這是一個很好的開始),但也是可以用週期性計时器將該看門狗清零之處;計时器的啟用是完全與程式中出現的任何情况隔離的。使用看門狗的目的是協助確保如果出現錯誤,看門狗不會被清零,即當工作暫停,系統會被迫去執行硬體重設定(hardware reset),以便恢復。使用與系統活動獨立的計时器可以讓看門狗保持清零,即使系統已失效。

對應用任務如何綜合到看門狗系統中,嵌入式開發人員需要仔細考慮和設計。例如,有種科技可能可以讓每個在一定時期內運行的任務標示它們可以成功地完成其任務。在此事件中,看門狗不被清零,強制被復位。還有一些比較先進的科技,像是使用外部看門狗處理器,它可用來監視主處理器如何表現,反之亦然。對一個可靠的系統而言,建立一個强大的看門狗系統是很重要的。

網站設計嵌入式開發技巧三-避免易失記憶體分配

不習慣在資源有限環境下工作的工程師,可能會試圖使用其程式設計語言的特性,這種語言讓他們可以使用易失記憶體分配。畢竟,這是一種常在小算盘系統中使用的科技,在小算盘系統中,只有在有必要時,記憶體才會被分配。例如,以C開發時,工程師可能傾向於使用malloc來分配在堆(heap)上的空間。有一個操作會執行,一旦完成,可以使用free將被分配的記憶體返回,以便堆的使用。

在資源受限的系統,這可能是一場災難!使用易失記憶體分配的其中一個問題是,錯誤或不當的科技可能會導致記憶體洩漏或記憶體碎片。如果出現這些問題時,大多數的嵌入式系統並沒有資源或知識來監視堆或妥善地處理它。而當它們發生時,如果應用程序提出對空間的要求,但卻沒有所請求的空間可以使用,會發生什麼事呢?使用易失記憶體分配所產生的問題是很複雜的,要妥善處理這些問題,可以說是一個噩夢!一種替代的方法是,直接以靜態的管道,簡化記憶體的分配。例如,只要在程式中簡單地建立一個大小為256位元組長的緩衝區,而不是經由malloc請求這樣大小的記憶體緩衝區。此一分配的記憶體可在整個應用程序的生命週期期間保持,且不會有堆或記憶體碎片問題方面的顧慮。

以上嵌入式開發的教程可以讓開發科技的人員獲取更好嵌入式系統的辦法。所有這些科技都是讓設計者可以開發出可靠性更高嵌入式系統的秘訣。

Top