嵌入式軟件-它有多復雜?生活中,嵌入式系統離我們越來越近。無論是手機,GPS還是平板電腦,或者是生活中的一些智能服務…… 從歷史上看,嵌入式系統非常簡單:只有幾千個內存的8位CPU。盡管仍在開發這種簡單的系統,但現在有許多資源豐富的設備與一個或多個32位處理器和許多兆字節的內存一起使用。這些設備的強大功能導致軟件的大小和復雜性增加。但是,這種復雜性有什么限制? 如果我們看一下機械系統,則存在很大的復雜性。迄今為止,最復雜的機器是航天飛機軌道飛行器,它具有一百萬個活動部件??紤]到車輛面臨的設計挑戰有多大,它們的表現非常出色。 隨著時間的推移,電子系統一直在變得越來越復雜,越來越小。在1950年代,復雜的電子設備可能具有100個(分立)晶體管-甚至可能使用了真空管。快進到今天,芯片上的數十億個晶體管并不少見。每年,芯片的幾何尺寸都減小到越來越少的納米。制作大內存芯片非常容易,因此可以使代碼越來越大。 當然,設計是瓶頸。硬件設計非常具有挑戰性,需要復雜的電子設計自動化(EDA)。軟件開發會有點困難。但這不僅需要工具。 在生活的幾乎所有方面(包括嵌入式軟件),基本上都有3種方法應對更大的挑戰: 1.加倍努力(即增加人手) 2.工作時間更長 3.更聰明地工作 有時(1)和(2)可以互換。例如,在建筑工程項目中,更多的勞動力可能會加快工作速度。但是,如果只是分配更多的人員來從事這項工作,那么軟件開發的回報將迅速減少。這主要是因為代碼不同部分之間的相互關系以及開發人員進行通信的必然需求。他們最終花費更多的時間進行交流,而不是編碼。在某種程度上,開發團隊的智能擴張可以帶來好處。這需要確定特定的專業知識要求并相應地分配人員。這與嵌入式開發特別相關,在嵌入式開發中,專業領域可能是:應用程序級代碼,驅動程序開發,OS配置,網絡,UI設計等。 智慧工作聽起來像公司的口號,但是讓開發人員能夠在給定的時間段內創建和調試更多功能。廣義上講,有兩種方法: 更高抽象級別的代碼 重用現有代碼(并使可重用代碼) 更高的抽象水平意味著遠離常規語言(如C),并擁抱其他范式??芍赜么a在很大程度上是面向對象編程(OOP)技術的領域??梢詣摻芍赜玫膶ο螅⑶?/span>OOP可以封裝專業知識-再次對于嵌入式特別有用。 |