天天看點

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

作者:虎哥數位宅
淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

大多數人隻知道電腦手機這類日常使用的電子裝置,卻不知嵌入式裝置幾乎無處不在了。

嵌入式系統是一種專門設計的計算機系統,用于控制、監測或執行特定任務。它們通常被嵌入到其他裝置中,如家電、汽車、醫療裝置和智能手機等。家用冰箱、洗衣機、空調,甚至遙控器、音箱、智能燈中,可能都會有這些嵌入式電子裝置。

是以,嵌入式系統已經成為大家生活中不可或缺的一部分了,并且随着功能需求和技術進化,它們的功能和性能也在不斷提高,已經深度融入到我們的生活環境和空間中。

這些年來,嵌入式晶片新品倍出,不斷疊代,晶片朝着體積更小、性能更強、運作速度更快、更省電、更低成本的方向不斷進化。随着晶片性能的增強和社會變革的需要,嵌入式系統越來越承接更多、更複雜的功能。它不僅廣泛運用在智能家電和物聯網上,高大上的雲計算、大資料和人工智能AI也開始接入嵌入式系統。未來的嵌入式系統将更加高效、智能、安全和可靠,并将與其他技術相結合,為人創造更多的服務價值。

嵌入式規模、業務、産值呈不斷加速擴張的趨勢。嵌入式軟體開發,日新月異,越來越成長為一個規模巨大的行當。與前些年相比,現在的嵌入式行業有着以下幾個特點。

産業技術向上遊集中,晶片廠家tunkey化

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

什麼是turnkey呢?就是廠家提供交鑰匙方案,也可以稱為一站式方案,搞一條龍服務。

晶片,廠家做好了;硬體闆,廠家出原理圖、PCB和參考設計;作業系統,廠家移植好了;驅動庫和API,廠家完成了;最後連應用,廠家也給你完成個七七八八。這就意味晶片原廠什麼事情都幫你搞定了,買方最後隻需要拿鑰匙驗收就可以了。

客戶拿到方案,簡單的隻是更改一些應用的配置,适應個性需求,就可以出産品了。再深度一點的,可以搞點二次開發。當年的MTK主宰的功能山寨機時代,就是這樣來的。

在嵌入式領域,晶片廠家tunkey化是未來的趨勢,這是因為tunkey方案能夠大大降低嵌入式系統開發的難度和門檻、提高開發效率,進而加快産品上市時間和降低開發成本。

晶片難做,基于晶片的嵌入式系統也不是個簡單的活。我經曆過不少嵌入式産品開發,從裸機做起,難度大,周期長,與晶片廠商反複溝通,經常是好幾個月了,還出不了貨。廠家一看來錢太慢,不如我一票幹了,你們趕緊出産品回款給我。

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

根據我的觀察,CPU晶片原廠将承擔越來越多的開發任務,作為中間層的方案內建開發商将越來越少,其它就是衆多的嵌入式産品應用開發商。

相對應,以後的嵌入式工程師隊伍,晶片原廠将是大頭,因為驅動、固件庫、和應用方案都要在晶片原廠完成。

諸多搞應用開發的公司,團隊不需要太精深的技術,有可能來錢快,倒閉的也快。嵌入式碼農去這樣的公司,會面臨很多職場的動蕩。

最好别去搞嵌入式系統內建開發的公司,兩頭受氣,啥也不是。産業技術向上遊集中了,這種公司的生存空間越來越窄,在這種公司幹活勞累、操心不說,公司還死得快。

是以,如果想從事深度嵌入式開發的小夥伴,盡量去晶片原廠吧。那裡是适合的技術深耕的地方,技術難度要求是高了些,但好在工作量均衡些,薪資穩健,職業也會穩定一些。

嵌入式軟體開發低代碼化

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

上面說過tunkey模式雖好,可也不是萬能藥,缺點是不能靈活定制、難以解決複雜問題。tunkey模式适合那些比較标準的行業産品,比如手機産品。但它對于市場上的有着千差萬别、個性需求的嵌入裝置,卻難以滿足。

為了應對這種情況,現在的嵌入式晶片廠商們,紛紛推出了代碼生成平台、或者低代碼平台。

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

10多年前,如果晶片廠商能有固件庫就算不錯了。最近幾年,一些嵌入式廠家推出了可視化程式設計,打造自己的低代碼平台。比如ST廠家提供的STM32CubeMX,以圖形使用者界面為 Cortex-M 核心生成初始化 C 代碼,并為 Cortex-A 核心生成 Linux 裝置樹源代碼。

從發展的趨勢來看,晶片平台廠商大包大攬,提供基礎開發平台,制造商專注于上層業務開發,将會是嵌入式的主流開發模式。

開發生态将會分工越來越細。中高端晶片平台産品,将來一定會像PC軟體開發模式那樣演進,有可能會出現一大批不懂硬體、不懂CPU架構、不懂接口技術的純軟開發的嵌入式工程師,甚至不懂C/C++語言也能。在近些年安卓手機應用開發中,有相當一部分已經是這樣的純軟開發了。

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

在安卓手機那樣的大型嵌入軟體開發中,我們每個人都是螺絲釘。但資源嚴重受限的中低端晶片平台,則很難做到這一點。越是中低端晶片産品,工程師幾乎可以掌控一切細節。

比如從業20年的我,就喜歡中小型嵌入式系統開發過程中,喜歡從裸機起步到10萬行代碼的掌控感。那是嵌入式開發的田園時代,以後的開發者,可能越來越難以遇到這種場景了,更多的是要在大堆的固件和庫的基礎上,快速堆積出應用代碼,搞出産品去賺錢。

作為一個嵌入式工程師,你在CPU晶片原廠做這些低代碼、可視化的程式設計平台,會非常有成就感,職業穩定。原廠還會有大量的驅動、OS移植、圖形庫、科學計算庫、IO庫、語音庫、網絡協義、AI庫等子產品方面的崗位,些都需要長期的努力和深耕。

嵌入式産品網際網路化

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

過去,嵌入式産品往往隻是一個功能相對單一的裝置,無法連接配接到網際網路,也不需要連接配接到網際網路。但随着網際網路的發展,人們越來越依賴網絡,需要将各種裝置連接配接在一起,進而實作更便捷的操作和更豐富的功能。

不光是市場需求,嵌入式IC的技術進步、CPU成本的降低推動了嵌入式産品的網際網路化。

網際網路的連接配接不光在你的手機和電腦上,現在網絡電視成了主流。

就我這個普通之家來說,不經意間,空調、音箱、冰箱、風扇、攝像頭,甚至插座和LED燈泡都連接配接上了網際網路。這些生活設施有了網際網路功能,我就可以遠端控制、監測和更新,使用體驗和便利性,是之前無聯網裝置所不能比得上的。

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

嵌入式産品網際網路化,是不可逆轉的趨勢。是以,不掌握網絡技術的嵌入式工程師,是有着技術面缺陷的工程師。具體來說,嵌入式工程師在網絡方面,需要具備以下一項或多項技術能力:

  • 網絡通信協定:嵌入式産品需要通過網際網路進行通信,是以嵌入式工程師需要了解常用的網絡通信協定,如TCP/IP、HTTP、HTTPS等。
  • Web開發技術:嵌入式産品的網際網路化通常需要與Web應用程式進行互動,是以嵌入式工程師需要掌握Web開發技術,如HTML、CSS、JavaScript等。
  • 安全性技術:嵌入式産品的網際網路化需要考慮安全性問題,是以嵌入式工程師需要了解相關的安全技術,如SSL、AES、RSA等。
  • 雲計算技術:嵌入式産品的網際網路化需要考慮雲計算技術的應用,如雲存儲、雲計算平台等,是以嵌入式工程師需要掌握雲計算相關技術。
  • 物聯網技術:嵌入式産品的網際網路化通常與物聯網技術密切相關,是以嵌入式工程師需要了解物聯網相關技術,如傳感器、物聯網協定、物聯網平台等。

此外,網際網路化的嵌入式産品需要處理大量的資料,是以部分嵌入式工程師也需要具備相關的資料存儲和處理技術,如資料庫、資料結構和算法等。

是以,有一定規模和行業前列的晶片原廠,以後還需要大量的嵌入式網際網路崗位、甚至純軟體網際網路崗位。

嵌入式産品AI化

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

在網際網路AI化的今天,嵌入式也必将跟随,嵌入式硬體裝置也需要執行更複雜的AI任務。

這個過程可能不會很慢,是未來的趨勢所在。目前ST就提出了STM32 Cube.AI開發平台的概念。它是一款免費軟體工具,可導入預先訓練的機器學習或神經網絡模型并将其轉換為可在STM32上運作的優化C語言代碼。

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

晶片本身也在AI化。我們的手機中早就有AI單元了,一般內建在手機晶片内部,稱之為IPU。寒武紀的NFU,也有Google的IPU,iPhone X上有Face ID。

晶片的AI任務,其實傳統的CPU和GPU都能夠實作,但為啥還要加上AI元件呢?

因為術業有專攻,CPU搞通用計算,GPU進行圖形計算,對于AI任務來說不是好的選擇。AI任務通常需要執行大量的矩陣計算、向量操作、資料流處理等高度并行化的運算,而AI元件的設計可以更好地滿足這些運算的需求。晶片中的AI元件的加入,可以顯著提高AI任務的效率和性能。

通過AI晶片,加速文本、語音、照片的處理速度,如AI慧眼識物、拍照翻譯、圖檔編輯和視訊特效。在AI這方面,需要數量衆多的嵌入式算法工程師。

淺談嵌入式軟體發展趨勢,嵌入式工程師的就業方向

1個10多元的語音控制LED燈

現在AI元件還隻是一些中高端晶片上有,将來,AI元件必然會以高度訂制化的方式,往中低端延伸。

其實,這個過程不知不覺的開始了。

前幾年,我在深圳山姆看到觸屏自助打稱機,蘋果、上海青之類的商品往上一放,選擇對應的商品的螢幕按鍵,就可以自已打稱了。而今年,我在一家鄉鎮超市,打稱居然是圖像識别了,你把蘋果、上海青往上一放,系統自動識别,自動出碼,連按鍵選擇這一步都省了。

我前段時間買了一個語音控制LED燈,不到20元錢,就可以用說話來控制開關、調顔色和亮度,與傳統跺腳式聲控,在技術層面是不可同日而語的了。這是裡面有個高度定制化的語音IC,執行了最簡單的AI功能。如此低端的IC上實作了自然語音控制,這在過去是不可想象的。

chatGPT之類的人工AI興起,讓一般初級軟體工程師顔面掃地,但在嵌入式領域,恐怕它還不能。從AI替代性的角度來看,從事嵌入式軟體開發,也是一個不錯的方向。

總而言之,嵌入式系統的産品越來越複雜強大,對嵌入式碼農的要求越來越高,不僅晶片控制接口技術你得懂,還要懂網際網路,懂算法,能應對AI。

當然嵌入式工程師,不可能每個方面都去研究,選中一個喜歡的方向積累即可。不過呢,基于國内的職場情況,你最好是個多面手,懂得越多越好。

(這裡是虎哥,撸代碼闆子20載,目前技術和文筆尚差,還需學習提高。請關注我,看看數位,聊聊軟體,侃侃職場,互相學習,有項目一起發财!)

繼續閱讀