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