多年來,隨著新技術(shù)的引入以及用戶和應用程序的不同需求,嵌入式開發(fā)人員發(fā)生了變化。
正如所有嵌入式東西一樣,沒有兩次流程是相同的。然而,我們應對設計挑戰(zhàn)的方式有一些共同之處。你總是從系統(tǒng)級別開始,需要從最終應用程序的角度考慮你正在設計的系統(tǒng)類型。然后,將系統(tǒng)分解成小塊或子系統(tǒng)。這是設計的一個重要方面,因為它決定了使用哪些技術(shù)、API、接口等。
下一步是找出設計的哪些部分需要原型化來驗證你的假設,以及這些特性是可能的。這個過程應該是快速和不昂貴的。
接下來,你需要考慮特定的硬件資源,如CPU(或FPGA)、GPU、加速器、處理器接口等。基于這些硬件決策,你現(xiàn)在回到你的軟件,確定哪種類型的操作系統(tǒng)最有意義,是開源和Linux就足夠了,還是需要一個實時操作系統(tǒng)(RTOS)。
在整個嵌入式開發(fā)過程中,你需要考慮系統(tǒng)的生命周期——將來你會有什么需求,以及你將如何處理你收集的所有數(shù)據(jù)?
這一流程的關(guān)鍵是有一個供應商可以帶你從設計到開發(fā)到部署,并提供選擇,無論你是想從RTOS開始,還是正在考慮開源,或者你是否需要認證。
實時的定義是什么?相對于開源,什么時候需要RTOS?
從根本上說,實時是指你的應用程序可以在要求的時間范圍內(nèi)執(zhí)行給定的任務。這就是我們所說的“足夠好”或者,RTOS為你提供了確定性,你可以從執(zhí)行流的角度預測系統(tǒng)的行為。你可以根據(jù)執(zhí)行時間準確預測。無論是10毫秒還是100毫秒,總會有延遲。但是你必須確定多少延遲不會中斷你的系統(tǒng)。
RTOS負責至關(guān)重要的進程和機器。想想飛機、火車、汽車,甚至火星探測器。在許多情況下,RTOS的正常運作確保了對人類生命和環(huán)境的保護。
或者,在原型嵌入式開發(fā)期間,開源是最方便的選擇。這是因為你可以訪問大量代碼,并且你可以看到社區(qū)是如何采用類似技術(shù)的。當你有計算密集型(例如機器學習)的用例時,開源框架或操作系統(tǒng)也可能是正確的選擇,與RTOS一起用于應用程序的最大約束和控制方面。從純知識產(chǎn)權(quán)的角度來看,開源可能會成為問題。換句話說,作為供應商或OEM,你是否愿意將你的源代碼提供給社區(qū)?
困惑在于一些開發(fā)者錯誤地將開源與非開源、實時與非實時聯(lián)系在一起。這是兩種截然不同的討論。真正的爭論回到系統(tǒng)基礎(chǔ)設施,以及它是否需要確定性。
在過去的幾十年里,RTOS的角色發(fā)生了怎樣的變化?
嵌入式系統(tǒng)的世界正在經(jīng)歷一場重大變革,影響著RTOS的作用以及依賴于確定性、超可靠性和性能的應用設計。一旦被隔離和專門構(gòu)建,嵌入式系統(tǒng)正在迅速增加新的功能,如更好的連接性、可重用性和靈活性。它們越來越多地由軟件定義。
今天的RTOS必須跟上創(chuàng)新的步伐,擁抱現(xiàn)代發(fā)展實踐。他們必須能夠使用新的、更復雜的處理器。它們的設計應該能夠在行業(yè)中實現(xiàn)新的、更快的開發(fā)周期。這意味著要兼容新一代嵌入式開發(fā)人員所采用的框架、語言和方法。
然而,沒有改變的是RTOS的基本要求,它必須滿足所有這些新標準,而不損害安全性、安全性、性能和可靠性。
有沒有我們應該知道的顛覆性和/或可行性技術(shù)?
首先想到的是5G通信。5G不僅僅是一種讓你做事更快的新通信標準。5G從根本上重新定義了延遲等問題。5G的最小可接受延遲遠遠低于4G LTE。有些人將其稱為“超低延遲”,這讓嵌入式開發(fā)人員可以實時做以前做不到的事情。顯然,存在天線和無線電接入問題,但這應該不會有太大影響。5G具有通過邊緣計算部署實現(xiàn)大規(guī)模“自主”的潛力。