需要密切關注的 嵌入式系統(tǒng)的5個特征
嵌入式軟件開發(fā)人員在創(chuàng)建他們的系統(tǒng)時需要監(jiān)控五個重要特征。現(xiàn)代系統(tǒng)擁有豐富的資源,監(jiān)控這些特征有時看似價值不高或沒有必要,但目前為止在現(xiàn)場遇到的最大問題總是與這五個關鍵特征密切相關。
無論一個嵌入式系統(tǒng)多簡單或多復雜,有5個關鍵特征是需要開發(fā)人員特別留意的。有一些特征顯而易見,如RAM和ROM的使用情況;還有一些特征很容易被開發(fā)人員忽視,如系統(tǒng)時序和執(zhí)行順序,成為開發(fā)設計的隱患。
特征1—系統(tǒng)時序
如果向開發(fā)人員詢問系統(tǒng)中斷或其它系統(tǒng)函數(shù)的最小、最大和平均執(zhí)行時間,90%的反應是翻白眼。說到嵌入式系統(tǒng)的實時性能,許多開發(fā)人員只能在心里禱告獲得最好的結(jié)果。如今的微控制器已經(jīng)變得非常快速和強大,但它們只是一般的計算器件,其時序并不能被完全忽略。開發(fā)人員需要了解多個中斷同時發(fā)生或者用戶在同一時刻“按下”所有按鈕(這是我喜歡的一種測試方法,幾乎百分之百不能一次通過)時,系統(tǒng)將如何響應。
幸運的是,現(xiàn)代微控制器有多種工具幫助開發(fā)人員理解嵌入式系統(tǒng)的時序和響應。舉例來說,ARM微控制器有跟蹤功能,使開發(fā)人員可以定期采樣PC計數(shù)器,并重構(gòu)系統(tǒng)時序和執(zhí)行路徑。利用這些工具,開發(fā)人員能看到反映系統(tǒng)內(nèi)部工作的實際數(shù)據(jù),而不再只是默默祈禱系統(tǒng)按自己想要的方式執(zhí)行代碼。
特征2—執(zhí)行順序
對開發(fā)人員來說,了解指令執(zhí)行順序與了解系統(tǒng)時序一樣重要。知道系統(tǒng)在何處分支或跳轉(zhuǎn)、各個函數(shù)或中斷何時并以何種順序執(zhí)行非常重要。如今的系統(tǒng)變得非常復雜,雖然我們自認為明白正在發(fā)生什么,但仍然需要提取跟蹤數(shù)據(jù),明明白白看到代碼的執(zhí)行。結(jié)果顯示的內(nèi)容常常與我們所預期的完全不同。
我強烈推薦開發(fā)人員研究并熟悉這些微控制器跟蹤工具。這些現(xiàn)代工具可以提供幾年前完全無法想象的直觀洞察圖。我曾經(jīng)用這些工具提供的洞察功能找出了許多設計缺陷,因此在編寫代碼之前設置好了跟蹤與缺陷捕獲工具。
特征3—代碼大小
人們理所當然地認為每個開發(fā)人員都會監(jiān)視代碼大小,但我認為實際上他們沒有這樣做。若是問一個GPIO或SPI驅(qū)動程序在他們的系統(tǒng)中占多少空間,大多數(shù)開發(fā)人員甚至都不知道去哪兒找答案!他們唯一知道的是自己編寫的應用程序有GPIO和SPI,最終的應用程序使用了(比如)約47kB的閃存空間。眾所周知,我們通常都不會跟蹤系統(tǒng)中的代碼細節(jié)。
現(xiàn)在在我們的保護系統(tǒng)中,代碼大小會根據(jù)所用的編譯器甚至優(yōu)化等級和標志而有很大的變化。另外,多數(shù)情況下,監(jiān)視代碼大小已經(jīng)變得不那么重要了,這是因為閃存相當便宜,供應商已經(jīng)能夠做到根據(jù)代碼大小便利地在同一微控制器系列的不同器件之間切換。但為了便于未來的項目規(guī)劃和器件選擇,跟蹤驅(qū)動程序等項目的細節(jié)仍然特別有用。
特征4—RAM的使用
與代碼存儲器不同,RAM正成為嵌入式軟件開發(fā)的關鍵因素。提供超過100kB的閃存空間同時卻只提供16kB的RAM,對于微控制器已經(jīng)很常見。這意味著RAM空間仍然非常珍貴。如果再考慮實時操作系統(tǒng)(RTOS),情況會變得更糟。在基于RTOS的系統(tǒng)中,開發(fā)人員通常將大量的RAM分配給線程堆棧空間,因為很難準確估計合適的大小。因此開發(fā)人員在編寫并實現(xiàn)他們的軟件時,需要監(jiān)控RAM空間都作了何用。
特征5—能耗
對于電池供電的設備,能耗無疑是系統(tǒng)設計的一個關鍵要求。而對于接入電網(wǎng)的系統(tǒng),因為能耗不是關鍵要求,因此常被忽略。鑒于能量成本不斷上升、自然資源逐漸減少,開發(fā)人員仍應繼續(xù)監(jiān)控設計的功耗需求,以便了解它們的能耗情況并最大程度地降低能耗。借助這種監(jiān)視,由電池供電的設備顯然會通過替換電池或給電池充電而獲得更長的工作時間。那些直接連接到電網(wǎng)的設備也能節(jié)省電力成本而使消費者和最終用戶受益。的確,每一臺單獨的設備所節(jié)約的能源可能微乎其微,但如果數(shù)百萬臺設備合在一起,我們就知道有多少能量不會被浪費了。
總結(jié)
本文討論了嵌入式軟件開發(fā)人員在創(chuàng)建他們的系統(tǒng)時需要監(jiān)控的五個重要特征。現(xiàn)代系統(tǒng)擁有豐富的資源,監(jiān)控這些特征有時看似價值不高或沒有必要,但目前為止我在現(xiàn)場遇到的最大問題總是與這五個關鍵特征密切相關。0次