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