《Embedded Systems Design》進行了一次非常全面的年度市場調查。你們可能已經知道了這個消息,因為你已經參加了這次調查。事實上,已經有四位讀者成為我們隨機抽簽的中獎者。
這個調查是在全球范圍內進行的,大部分是通過電子郵件在今年年初進行的。調查被發給本刊物(美國版本和歐洲版本)和《EE Times》(《電子工程專輯》姊妹刊物)的部分訂閱者以及我們舉行的嵌入式系統研討會(Embedded Systems Conferences)的部分出席者,超過1,000位嵌入式系統設計工程師對調查進行了回復。
對于不熟悉本次調查的讀者,我們回顧一下所涉及的領域:
你的設計中包含哪些功能?
你將部署哪種無線技術?
你正在同時做幾個項目?
你的團隊有多少人?
你使用的是什么類型的工具?
你曾經選擇過哪個處理器?
你曾經選擇過哪個操作系統?
我不會在這里把整個調查過一遍,但是我想分享一些我覺得特別有趣、特別麻煩和特別吸引人的部分。如果你想獲得有關整個調查的更多信息,請直接與我聯系(rnass@cmp.com)。本次調查的真正亮點在于,我們多年以來都做一個幾乎相同的調查,我們可以展現趨勢、演進過程和產品周期結束情況等。年度同比數據非常有趣。
以下就是一個值得注意的統計:從2005~2007年,新項目數從48%下降到39%,如圖1所示。這種下降已經差不多全部被改進和維護的增加所抵消。這說明什么?可以說明項目太復雜,以致它們需要比過去更多維護嗎?或者這些設計比以前的模型好,因此產品周期更長?在我看來,這是這兩種作用結合的結果,由于生產一個新產品的成本大幅增加,因此后者更加重要。但是,很明顯,對每個新一代處理器進行編程需要更多時間,這僅僅是因為向開發工程師提供了更多功能。更多代碼意味著更多測試,因此每個設計階段都會耗費更長時間。
為了從事實上檢驗這個問題,我聯系了特約編輯Michael Barr。Barr懷疑設計工程師已經改變了他們定義“新項目”的方式。“過去人們是通過如果你的項目增加了互聯網連接,但是仍在通過其它方式做同樣的事情,來定義新項目的。現在,每個想要互聯網連接的工程師都有新項目。因此他們將這種變化(包括應用更新)視為升級,而不是新項目。”
對于那些對現有項目進行升級的設計工程師,56%表示他們在使用新處理器(圖2)。這是因為他們需要更多性能或者因為他們正在使用的處理器不再生產了嗎?我的猜測是兩者都有可能,但是多半是因為需要更多性能。CPU供應商現在對如何和何時廢棄處理器非常謹慎,這是系統開發工程師擔心的事情之一。
Linux
這是讓我感到驚訝的一個方面,至少直到我通過思考對以下數據作了分析:不考慮在其下一個項目中采用Linux的人數從34%上升到48%,2005年則為27%,如圖3所示。請記住,雖然采用Linux的人數相對較多,但是未采用Linux但將來會考慮采用Linux的人數卻在減少。這歸因于這樣一個事實:Linux已經不再是新事物了。將來考慮采用Linux的較高比例的一部分群體已經在采用Linux了。
由于Linux不像火箭科學一樣成本高昂,因此成本是工程師們對Linux感興趣的一個主要原因(圖4)。一個令工程師們對Linux退而遠之的原因是預測和實際之間的開銷沒有完全計算在內。雖然內核本身可能免費或者相對便宜,但是支持成本攀升得比預期的快。并且必需第三方工具來實現應用特定功能,這也會增加成本。
商業操作系統
從總體上看商業操作系統,其采用出現了顯著下降(圖5)。但是令人驚訝的是,這種下降并未被商業分布的開放源代碼操作系統的采用抵消。對于操作系統供應商而言,這是一個潛在的壞消息。
據Barr推論,這種下降是因為“對于操作系統技術而言,真相就在其中。每個RTOS基本上都是相同的。你需要的是將你的問題分成多個任務和獲得足夠計算能力的方法。然后你不妨采用基于優先級的搶占式內核。無論你是從書中或者通過附帶的免費源代碼獲得你的OS,還是免費獲得一些其它東西,這些東西全部都是一樣的。除非你需要某種驅動器可用性或者某種特殊的先進功能,否則你真的不會愿意為此而花錢。”
這種下降是由于用戶不滿意對它們提供的支持嗎(圖6)?影響使用哪個商業操作系統決定的關鍵因素是質量和技術支持的提供。這一數字從27%上升到50%,兩年內幾乎翻了番。
作為編程語言,C語言在目前和未來的項目中的使用規模越來越大(圖7和圖8),大部分是以C++為代價。
Barr對這些結果完全不感到驚訝,他表示,這是一個將延續下去的趨勢的一部分。“如果你著眼于年度同比數據,你會發現C++并沒有多少增值。事實上它已經消失了。即使C++的‘可重用性’可能更高,但這種特性在嵌入式領域中并不一定適用。因此許多嵌入式軟件綁定至正在實現的精確硬件。你可以重用你的API,但是你的代碼的內部組成會隨項目的不同而變化。嵌入式領域的優先級是系統正常工作。C語言在這方面做得很成功,你可以用它完成許多主要任務,特別是當安全性非常關鍵時。C++往往會引入大量變量,從而使項目變得更復雜。”
我們提過這樣一個問題:你會在你的嵌入式設計活動中對哪一項進行改進(圖9)。名(是第二名2倍以上)是調試工具。從同一問題的年度同比結果中可以看到,回復“編程工具”的人數從2005年的25%下降到了2007的10%。
Barr表示,“這里的關鍵在于調度,使產品更快面市。我對讀者尋求更好的調試器感到驚訝,這是因為調試器不會真正地幫助你設計。如果你把時間花在嘗試找出問題的調試器上,那么你就有麻煩了。我確實花時間觀察過人們在使用調試器時沒有發現任何情況,此時你必須做的就是推論出問題的原因,了解計算機是如何工作的。然后用調試器來確認你的猜想。”
這里有一點讓我感到欣慰。多年來我一直在向處理器供應商倡導一切都在于工具的理念。如果你擁有世界上、快、功率的處理器,情況不會因此而有任何不同。如果你沒有在這種處理器周圍建立正確的生態系統,那么你將不會成功(圖10)。
近討論得比較多(特別是你們)的一個話題是外包問題,工作是在國內做還是外包到國外。大約39%的回復者表示,他們已經做過一個或更多部分外包或者完全外包的項目(圖11)。
其它值得注意的統計
哪個設計階段耗時長(圖13)?耗時長的是測試和調試階段。
模擬器件提供商要注意了!對于品牌忠誠度而言,這可能不是件好事。根據本次調查,差不多三分之二(63%)的回復者聲稱當他們選擇模擬器件時沒有品牌忠誠度(圖14)。
雖然許多設計工程師正在采用可編程邏輯(這是我近探討過的另一個典型現象),但是在其可編程邏輯中采用嵌入式處理器的比例卻相當少,僅36%,一半工程師表示他們采用硬內核,一半表示采用軟內核(圖15)。令人欣慰的是,采用嵌入式處理器的人數在增加,雖然增加速度很慢。