對嵌入式系統軟件開發技術你了解多少

對嵌入式系統軟件開發技術你了解多少

嵌人式系統開發經過30多年的發展 , 到現在算是一個成熟的技術了 。由此可以從總體上確認在嵌入式系統開發展過程中出現的幾種明顯趨勢 , 這些趨勢指出了一系列新興的關鍵技術 。針對新興的嵌入式系統發展趨勢,提出了對于嵌入式系統軟件開發的幾個過程,并挑選出它們所驅動的技術,從而做出一個值得注意的技術的時間表 。

1 微處理器技術

最早的微處理器是4位和8位器件 。由于制造技術越來越復雜,集成的單片8位微處理器開始出現,16位微處理器也開始使用 。隨著微電子技術的發展 , 16位的微處理器已得到廣泛的應用 。32位架構的器件逐漸占領了高端的應用市場 , 第一代的32位器件都是CISC架構,但目前 , 越來越多的RISC芯片正在提供更高的性能 。嵌人式系統設計者選擇微處理器的范圍比以前大了,必須根據性能、需求、支持、可用性和價格來進行選擇 。
2 系統架構

隨著微處理器的發展系統架構也在進步 。最早的系統,是由CPU和一些邏輯器件組成的 。多年以來 , 系統變得日益復雜 , 但都還可以使用同樣的調試技術—電路仿真、芯片級調試、ROM監控器以及指令集模擬 。嵌入式系統日益強勁,而功能需求的增長則更快很多設計者開始重新審視微處理器和它們的用法 。

3 設計組成

嵌入式系統發展的最初階段 。所有的開發包括軟件和硬件設計,通常都是一個工程師來承擔 。軟件在整個工作址中的比例很小 , 大約5%-10% 。隨著時間的推移軟件開發占工程時間的比例持續增長 。至20世紀80年代中期 , 軟件開發已經是由專業歡件人員來做 , 所占比例一般已超過整個開發工作量的50% 。

在最近幾年 , 雖然硬件設計變得更加復雜,但軟件的份量也急劇增長,目前通常占到開發總量70%-80% 。因此,需要有軟件團隊參與,同時也產生了一些新的挑戰 。這些挑戰中的一個,就是要有可用的硬件平臺來進行軟件測試 。由于要在更短的時間內開發更多的軟件,就需要盡快建立測試環境 。發出更多的軟件,就需要盡快建立測試環境 。有多種可行的方法,如本地代碼執行原型環境、指令集軟仿真(模擬),以及使用標準的、低成本的、現成的評估板 。此外,低成本的主機一目標機連接技術,也變得越來越普及,有代表性的就是JTAG接口 。

4 軟件內容

軟件開發所占總時間的比例一直在增加 。同時,來自全球貿易和競爭的壓力使得產品投放市場的時間也一直在縮短 。這極大地影響了設計的策略 。最早的設計相當簡單,僅僅由自己設計的應用代碼組成 。隨著系統的復雜度增加,多任務的模型被軟件開發者廣泛采納,很多開發者選擇標準的、商用的實時操作系統產品 。隨著各個標準的進一步被采納,買來的軟件 , 或者說有“知識產權”的軟件所占的比例正穩步增長 。這個趨勢給了軟件開發者很多啟示 。集成標準的軟件組件—和應用代碼及其他—是我們所關心的 。在多任務背景下調試是另一個值得關注的問題 。與選擇知識產權有關的商業決定尤為復雜;除了當前的要求之外,還有將來的(例如移植到別的處理器)也必須加以考慮 。

5 編程語言

對于早期的4位和8位微處理器 , 匯編語言是唯一的選擇 。隨著16位微處理器技術成為現實,出現了幾種可供選擇的語言 。有Pascal和C語言和PL/M語言 。對某些類型的系統來說,Forth語言也曾很流行,隨著時間推移 , 32位技術的使用日益增多 , 出現了C和Ada 。后者在國防部的系統中被普遍使用 。

在嵌入式軟件開發中,C開始逐步取代C語言 ?,F在,1/4~1/3的嵌入式系統代碼是用C編寫的 。Java語言當初是專門為嵌人式應用開發的,在要求運行時重新配置的應用場合,它找到了一席之地 。統一建模語言(UML)也成為高級設計方法學的最流行選擇 。

6 軟件隊伍的規模和分布

正如先前討論的一樣,最初的嵌人式系統設計只要一個人就夠了 。在適當的時候,因專業化,產生了致力于軟件開發的工程師 。下一步就是建立嵌人式軟件開發團隊 。管理軟件開發在任何情況下都是一個挑戰,嵌入式系統開發也不例外,只是有細微差別 。使用傳統的編程技術———過程語言,如C語言和匯編語言,團隊里的大部分成員都需要對整個系統了解比較全面 。隨著團隊變大,這就變得越來越不可行 。價況住往是,團隊里有一些特殊的人才,他們對某些專門領域很在行 。為了有效地管理團隊必須使用合適的策略,將他們的專長封裝起來 。盡可能使一個專家的工作成果能夠被非專家以安全、可靠和直觀的方式加以使用.在這種情況下,面向對象編程技術找到應用點 。

雖然有很多非常大的公司,但軟件隊伍不是簡單的人員擴充他們正在變成分布式的 。團隊的一些成員在一個地方,而其他的可能在別處 。這些地點甚至有可能位于不同的國家 。這種安排在歐洲很常見,在那里 , 真正關心的可能是交流的語言 。其他地方,時區可能是個問題(可能也是一個優勢,因為分布式的團隊可以全天候工作) 。隨著新興的技術中心(如印度)廣泛崛起,上述情況越來越普遍 。在這一背景不,軟件組件的可重用性需求就變得很常見了 。

7 UML和建模

最近幾年,UML己經成為一項關鍵的設計方法,它和逐漸增七的嵌人式軟件團隊規模關系密切 。廣義上說,使用設計工具的方式有2種:或者是作為編寫代碼的指導,或者就作為直接生成代碼的一種手段 。對于嵌人式軟件來說,代碼生成是有爭議的 , 它可能會被爭論(而且還很有道理)—每一個系統都是不同的,都有各自的特殊需求 。這正是xtUML(可執行和可翻譯的UML)吸引人的地方,因為它使得應用與架構清晰地分離了 。這里所遵循的,是與面向對象編程同樣的原則—使用工具和技術來平衡專家意見 。

追蹤所有被當前各種嵌人式系統開發趨勢所驅動的新技術并非易事 。孤立地看待其中任何一項技術也是毫無意義的,因為它們之間有著許多聯系 。例如,多任務與多處理器調試相關;基于標準的RTOS技術對處理器移植來說真是件幸事;使用設計方法學可以令實現更容易 。


【對嵌入式系統軟件開發技術你了解多少】

經驗總結擴展閱讀