EE人生:回顧嵌入式系統20年開發之路

作者: Stephen Evanczuk,Embedded.com特約作者

從1999年到2019年,嵌入式系統的開發工具——硬體、軟體和方法日益精進。為了衡量20年來的變化,《Embedded.com》分別在1999年、2009年和2019年進行調查,提供了20年來嵌入式開發演變的縮影…

就像任何開發領域一樣,嵌入式系統的開發也像大海一樣:深海洋流相對上較穩定,而看似平靜的海面下卻可能暗潮洶湧。冒著可能被淹没的危險,我想表達的是,當今嵌入式系統的開發基礎,基本上就跟工程師當年必須在硬連線微電腦上撥動套環開關才能跑程式碼一樣。就像那些工程師一樣,我們至今仍得嘗試監控外部事件,並做出適當地回應。那麼,我們如何在持續變化中求發展?

從表面上看,用於建構嵌入式系統的硬體、軟體和方法日益精進——或至少有所不同。為了衡量這些變化,《Embedded.com》分別在1999年、2009年和2019年進行了調查,而今藉著比較並分析這些調查結果,將有助於一窺過去20年來嵌入式開發如何演變。

實際上,每一項調查的問題本身都反映了其中的一部份變化。1999年的調查涉及很多部份,針對交叉編譯器、物件導向的設計方法以及電路中硬體模擬器出了許多問題,但針對作業系統(OS)方面的討論並不多。到了2009年的調查,排除了這些特定部份的問題,並加入了更多有關多處理器設計、OS以及特定的嵌入式Linux等更多資訊,但諸如物聯網(IoT)和人工智慧( AI)之類的主題還沒開始受到任何關注。而在2019年的調查中,包括IoT、AI以及安全性這些主題,才開始顯露更廣泛的興趣和積極運用。

由於在2009年時針對調查方法進行了大幅改變,因此很難比較這幾次調查的細節。在某些情況下,同樣的一般性問題被延伸為答案不只一個的多重選擇題。這對於任何解釋都增加了不確定性,這在以下的「設計功能」部份更多的討論。此外,調查結果中還缺少1999年的部份調查資料,因此有些部份只能看到2009年和2019年的數據。最後,值得注意的是,調查結果的誤差範圍通常在大約3%到6%以上,因此想要詳細加以比較可能極具風險。

嵌入式應用重點和功能

過去十年來,嵌入式設計的主要應用領域有什麼改變?儘管工業和消費領域仍排名前五大重點應用,但汽車和IoT應用有關的設計開始佔據主導地位(表1)。或許我們可以說在2009年被稱為數據通信(datacomm)的設計,可以包含在2019年的通訊中。

20200109_embedded_NT01T1

表1:前5大嵌入式應用領域。 (%的受訪者)

過去二十年來,設計的本質如何變化?1999年的調查列出了將Web技術整合於設計中的多個問題。在研究1999年的調查時,特別有趣的是一點是:有43%的受訪者表示並不打算這麼做,但有14%的受訪者表示願意。我其實並不確定該問題中「Web技術」究竟表示什麼,但希望不會有人想把httpd伺服器嵌入其系統中。

更廣泛地來看,表2顯示三項關鍵設計功能的演變。唯一真正的變化是連網設計大幅增加,從2000年初約佔35%的設計,到2010年時已經高達90%以上了。(我認為該調查方法沒注意到連網和無線可能互換,但從加總的統計數字來看, 2009年和2019年所顯示的連網設計量大致相同。)

同樣地,嵌入式開發人員打造以電池供電的設計至少長達十年之久了。有時候,業界會忘記電池供電的設計早在IoT和可穿戴裝置興起之前就已經存在。

20200109_embedded_NT01T2

表2:關鍵設計功能。 (%的受訪者)

程式語言

值得注意的是,C/C++並不一定是嵌入式開發的主要語言(圖1)。由於每項調查中可能潛藏其他的回應,加上更高性能的處理器崛起,很可能減少了對於組合程式碼的一些需要。但事實是,只有約37%的專案能按時按期完成——儘管2009年表示希望加速開發流程,但這個數字到了2019年也沒有多大的改變(參考圖6)。

20200109_embedded_NT01P1

圖1:主要的開發語言。(%的受訪者)

2009年底,開放原始碼OS開始取代商用OS的使用。到了2019年,這一趨勢仍持續進展。有趣的是,取代商用OS並不僅僅是因為開源OS的興起。客製/內部專有OS的使用率也持續增加(圖2)。

20200109_embedded_NT01P2

圖2:作業系統(OS)類型。(%的受訪者)

…繼續閱讀請連結EE Times Taiwan網站

發表評論