嵌入式系統必須滿足其實時期限,才能有效地按預期運行。沒有人喜歡按下一個按鈕,等待30秒,系統才最終做出反應。更重要的是,安全關鍵系統需要按時完成,否則可能會發生非常糟糕的事情,例如受傷或死亡。有很多方法可以確保嵌入式系統能夠按時完成,但這里有七個技巧可以幫助嵌入式開發人員確保按預期完成他們的最后期限。
技巧1——爭取30%的空閑時間
每個人都希望從為產品選擇的每個組件中獲得最大的價值。以低于100%的速度運行微控制器,感覺就像產品被過度設計了。然而,事實是,為了滿足實時要求和截止日期,開發人員真的應該將他們的系統設定為CPU空閑時間在30%左右。為什么這么高?執行理論RAM(單調速率分析)的開發人員會發現,滿足實時要求、運行調度程序和處理中斷的理論最大CPU負載為69.3%。對處理器施加更大的壓力意味著,在最壞的情況下,無法滿足實時系統要求的可能性大大增加。
技巧 2——使用跟蹤工具進行精確測量
幾年前,開發人員會繪制出他們系統中理論上會發生的事情,實施它,然后祈禱微控制器中發生的事情就是他們認為正在發生的事情。從那時起,SWD、ETM和其他跟蹤協議等新工具已經出現,允許開發人員監控微控制器中正在執行的指令,而對實時性能的影響最小。開發人員通常會假設他們的系統將如何執行代碼,但使用跟蹤工具,不僅可以測試假設,還可以為開發人員提供最小、最大和平均執行時間,使他們能夠調整和驗證他們的實時模型。使用這些工具來改進和理解假設,并認識到系統正在做什么。
技巧3——謹慎選擇RTOS優先事項
很多嵌入式開發人員不知道如何選擇RTOS優先級。當被迫選擇一個優先級時,他們只是簡單地與系統中的其他任務做一個快速的心理比較,然后選擇他們認為應該是的那個。決策中很少涉及工程學,更多的是猜測。只有在仔細分析了任務之間的相互影響,并確定所有任務在所有情況下都能在截止日期前完成后,才能選擇RTOS優先級。
技巧4——進行RMA分析
單調速率分析(RMA)是一種技術,開發人員可以使用它來分析他們的周期性任務,并確保設置優先級,以便滿足所有截止日期。對于開發者來說,RMA是一個很好的起點,可以用來確保他們系統的完整性是建立在堅實的基礎上的。
技巧5——為工作選擇合適的微控制器
選擇一個對手頭工作來說馬力太小的微控制器會導致一個噩夢般的解決方案,即不斷地優化、切割和與源代碼斗爭。選擇正確的微控制器是一項挑戰。一個好的經驗法則是從感興趣的微控制器系列的高端器件開始,制作系統原型,并開始了解代碼、其執行方式和系統的整體性能。如果微控制器的功率太大,就換成功率較小的微控制器。但是不要忘記,在許多情況下,產品往往會隨著時間的推移添加越來越多的功能,因此嵌入式開發人員選擇一個超出需要的微控制器可以保持系統正常工作,即使功能蠕變正在發揮作用。
技巧6——創建軟件架構
預先設計系統,建模并創建軟件架構。一個架構將幫助開發者理解主要的軟件組件,它們的輸入和輸出是什么,以及它們如何相互作用。理解這些主要部分可以識別沒有被很好理解的區域,這可以引導工程師在編寫產品代碼之前更好地研究和理解這些區域。一個架構良好的代碼庫將會產生可理解的代碼,并滿足其最后期限。
技巧7——持續測試
軟件變化。功能被添加、增強,有時甚至被刪除。對代碼庫的更改將不可避免地影響實時系統性能,并可能導致保持系統按預期運行所需的優先級更改。確保系統持續運行的唯一方法是持續測試、測量和評估系統的運行情況。將測試和測量融入嵌入式軟件開發過程。
結論
管理時間和滿足截止日期是開發實時嵌入式系統時要考慮的最重要的因素。遵循這些提示可以開始幫助嵌入式開發人員理解他們的系統是如何工作的,并確保他們將滿足拋給他們的所有系統期限。