在我們看來,嵌入式系統有一些顯而易見的特征,如RAM和ROM的使用情況,不過呢一些特征卻很容易被開發人員忽視,如系統時序和執行順序,成為開發設計的隱患。針對這個方面,我們切勿直接忽視,而更應該謹慎操作。粵嵌嵌入式開發培訓來介紹一下:
特征1—系統時序
說到嵌入式系統的實時性能,許多開發人員只能在心里禱告獲得的結果。嵌入式開發人員需要了解多個中斷同時發生或者用戶在同一時刻“按下”所有按鈕時,系統將如何響應。當然了,幸運的是,現代微控制器有多種工具幫助開發人員理解嵌入式系統的時序和響應。利用這些工具,嵌入式開發人員能看到反映系統內部工作的實際數據,而不再只是默默祈禱系統按自己想要的方式執行代碼。
特征2—執行順序
對開發人員來說,了解指令執行順序與了解系統時序一樣重要。知道系統在何處分支或跳轉、各個函數或中斷何時并以何種順序執行非常重要。如今的系統變得非常復雜,雖然我們自認為明白正在發生什么,但仍然需要提取跟蹤數據,明明白白看到代碼的執行。結果顯示的內容常常與我們所預期的完全不同。我強烈推薦開發人員研究并熟悉這些微控制器跟蹤工具。這些現代工具可以提供幾年前完全無法想象的直觀洞察圖。我曾經用這些工具提供的洞察功能找出了許多設計缺陷,因此在編寫代碼之前設置好了跟蹤與缺陷捕獲工具。
特征3—RAM的使用
與代碼存儲器不同,RAM正成為嵌入式軟件開發的關鍵因素。提供超過100kB的閃存空間同時卻只提供16kB的RAM,對于微控制器已經很常見。這意味著RAM空間仍然非常珍貴。如果再考慮實時操作系統(RTOS),情況會變得更糟。在基于RTOS的系統中,開發人員通常將大量的RAM分配給線程堆棧空間,因為很難準確估計合適的大小。因此開發人員在編寫并實現他們的軟件時,需要監控RAM空間都作了何用。
特征4—代碼大小
人們理所當然地認為每個開發人員都會監視代碼大小,但嵌入式開發培訓認為實際上他們沒有這樣做。若是問一個GPIO或SPI驅動程序在他們的系統中占多少空間,大多數開發人員甚至都不知道去哪兒找答案!他們知道的是自己編寫的應用程序有GPIO和SPI,終的應用程序使用了(比如)約47kB的閃存空間。眾所周知,我們通常都不會跟蹤系統中的代碼細節。
現在在我們的保護系統中,代碼大小會根據所用的編譯器甚至優化等級和標志而有很大的變化。另外,多數情況下,監視代碼大小已經變得不那么重要了,這是因為閃存相當便宜,供應商已經能夠做到根據代碼大小便利地在同一微控制器系列的不同器件之間切換。但為了便于未來的項目規劃和器件選擇,跟蹤驅動程序等項目的細節仍然特別有用。
特征5—能耗
對于電池供電的設備,能耗無疑是系統設計的一個關鍵要求。而對于接入電網的系統,因為能耗不是關鍵要求,因此常被忽略。鑒于能量成本不斷上升、自然資源逐漸減少,開發人員仍應繼續監控設計的功耗需求,以便了解它們的能耗情況并地降低能耗。借助這種監視,由電池供電的設備顯然會通過替換電池或給電池充電而獲得更長的工作時間。那些直接連接到電網的設備也能節省電力成本而使消費者和終用戶受益。的確,每一臺單獨的設備所節約的能源可能微乎其微,但如果數百萬臺設備合在一起,我們就知道有多少能量不會被浪費了。
前為止我在嵌入式開發現場遇到的問題總是與這五個關鍵特征密切相關。所以大家不要以為常見的就不需要警惕,越常見越可能出錯。作為一名嵌入式開發人員,做好每個細節是基本的職業素質。