開發嵌入式軟件并不像以前那樣“簡單”。對于許多開發團隊來說,創建一個獨立的設備仍然經常是具有挑戰性的。在物聯網時代,我們開始將一切都連接起來,系統的復雜性正在飆升,傳統的嵌入式開發人員發現,他們面臨著幾個新的挑戰,需要解決這些挑戰才能取得成功。
挑戰 1 – 連接性
開發人員面臨的第一個挑戰是連接性。這聽起來很簡單,但有很多不同的方式可以連接到互聯網。開發人員可以通過 Wi-Fi、移動數據、藍牙和許多其他潛在來源進行連接。每個都有自己的優點和缺點,以及開發人員需要學習和理解以使硬件正常工作的不同軟件堆棧。這甚至不包括關于使用哪些協議(如 UDP、COAP、TCP/IP 和其他幾個協議)或是否同時使用多個協議的其他軟件考慮。然后是學習和使用 TLS 和/或 MQTT 的挑戰,并在你投入服務器時理解這一切是如何工作的。當然,開發人員可以使用預先存在的軟件堆棧來幫助減少挑戰,但他們仍然需要了解正在發生的事情,以防萬一出現問題或需要修改。
挑戰 2 – 無線更新
現在該設備終于連接到互聯網了,我們可以遠程更新它的固件,這聽起來是個好主意。使用獨立設備時,開發人員過去只需將新固件映像發布到安全站點,然后通過電子郵件向所有客戶發送“過來獲取它”!借助物聯網,軟件更新有望奇跡般地出現并自行執行。即使在涉及數千臺設備的小型部署中,嵌入式開發人員也需要弄清楚如何:
生成固件更新作業
保護他們的更新
驗證它們來自受信任的來源
如果有問題回滾更新
確定何時適合更新設備。
這都是一件棘手的事情,開發人員現在需要了解如何成功部署他們的產品可能會耗費大量時間。
挑戰3——安全
連接的設備現在連接良好,這意味著互聯網上的其他任何東西也可以看到它們。開發人員現在不僅需要了解如何連接,還需要了解如何保護他們的設備免受不斷發展和變得越來越復雜的安全威脅。安全性不是可以在設計周期結束時添加到系統中的東西,也不是可以在一夜之間學會的東西。需要仔細考慮系統如何分區、隔離以及需要保護哪些信息。開發人員需要清楚地確定他們的系統需要有多安全。
挑戰 4——調試
隨著越來越多的團隊構建連接設備,復雜性增加,這意味著調試所花費的時間很可能也會增加。由于開源軟件和其他軟件包集成在一起,因此系統肯定會產生奇怪和新的行為,除非它們都被設計為首先可以協同工作。嵌入式調查顯示,嵌入式開發人員平均已經花費了 40% 的時間進行調試!調試是每個嵌入式項目的巨大時間和成本。出于這個原因,開發人員了解他們可用的所有調試技術以及如何首先防止它們是很重要的。
挑戰 5 – 變化率
當然,每年都會推出更強大的處理器,但改進是漸進式的。在過去五年多的時間里,可用技術和他們需要做的事情有了很大的飛躍。它從連接開始,但它迅速擴展到不僅是安全,還包括人工智能和系統。開發人員開始發現他們可用的技術變化得比他們學習它們的速度更快。
結論
這些是開發團隊開始從設計獨立設備過渡到連接設備時遇到的主要挑戰,這些挑戰當然不是不可克服的,在許多情況下,解決方案已經以各種形式存在。訣竅在于嵌入式開發人員和團隊如何加快速度,然后保持每個開發人員都需要的這些新技能。