感知、組織、分析、呈現和決策信息需要軟件。幾十年來,我們一直在使用各種平臺以不同級別的能力來執行此任務。現在,我們擁有非常小的設備,這些設備由單節電池運行,具有1990年代后期基于80486的個人計算機的功率,下一個問題是顯而易見的 - 軟件。有了裸機的實時操作系統(RTOS)和像Linux這樣的真實操作系統可供選擇,我們將遇到無線電和計算機中探索的類似問題,但從軟件的角度來看。
從可擴展的軟件架構開始是任何嵌入式應用所必需的。在最終確定嵌入式應用程序的編程體系結構之前,必須考慮將來可能調用的增強軟件。許多工程師認為這是事后的想法,因為他們習慣于在操作系統之上編寫代碼。
另一個重要的考慮因素是成本。隨著系統功能的增加,對更快的處理器、更多的代碼內存和 RAM 的需求也在增加。下面的圖 1 顯示了嵌入式系統的典型功能與成本關系圖,盡管在可能的硬件選擇方面,不同層之間的界限是模糊的:
在以下情況下,首選裸機編程:
該應用程序很簡單,可以在低端處理器上實現。
應用程序需要提取每個周期的CPU功率,并且操作系統引入的開銷是不可接受的。
安全性和安全性與硬件密切相關,其中系統按照確切的期望執行和運行,并且系統一直處于這種狀態。
硬件成本受到限制,并且需要出色的效率。
許多嵌入式應用程序是無限循環,其中它們執行一個任務,然后執行另一個任務,依此類推,重復相同的功能。這些任務中的大多數都是相互依賴的。裸機編程對于代碼應該是可預測的、可理解的、并且應該易于調試的情況并不理想。擁有調度程序使嵌入式工程師的生活更加簡單 - 每個軟件模塊都可以獨立設計,然后使用調度程序的幫助與其他軟件模塊鏈接和調度。因此,隨著代碼復雜性的增加以及系統需要功能強大的微處理器/微控制器,RTOS是首選。當MCU集成更多內存和外設時,實時操作系統成為必需品。復雜的物聯網應用可能需要更多的中斷源、更多的功能和更多的標準通信接口——主要是無線。在如此復雜的解決方案中可能需要RTOS。
實時操作系統可以充分利用功能豐富的MCU,特別是當提供中間件可以處理復雜任務時,否則將需要真正的操作系統。但是,在軟件方面,有許多不重疊的復雜性和功能領域。具有添加中間件的RTOS可以接近通用操作系統的功能。例如,中間件可以添加文件系統、網絡、圖形和復雜輸入支持等功能,盡管與本地支持這些功能的真正操作系統相比,需要增加開發工作。一些遠程操作系統甚至支持 POSIX API,這些 API 可以在一定程度上重用來自 Linux/Unix 應用程序的代碼。
但是,當應用程序復雜性增加到超過特定限制時,通用嵌入式操作系統就會顯現出來。這時,處理器會說:“給我一個MMU,我就可以解決你所有的問題。由于其代碼大小和主存儲器要求,昂貴的SRAM和NOR存儲器變得不切實際。大多數嵌入式版本的通用操作系統需要至少 16-32 MB 的主內存和 64+MB 的代碼存儲才能正常運行。幸運的是,應用處理器和通用操作系統能夠處理更便宜、更慢的存儲器,如DRAM和NAND閃存。
當您遷移到嵌入式通用操作系統時,您不會丟失“實時功能”。它們能夠以略高的延遲級別運行實時應用程序,具有不同級別的確定性(“軟實時”)。但大多數應用程序不需要“硬實時”功能。在嵌入式操作系統上運行的經過良好驗證的應用程序可以像在中間件的幫助下在RTOS上運行的類似應用程序一樣防彈和確定性。
由于持續的硅擴展以及大量工程師對合適的操作系統更滿意,應用處理器和內存的成本每年都在降低,許多本來會使用RTOS的應用程序現在發現應用處理器+適當的操作系統組合具有成本效益,并且還縮短了上市時間。
審核編輯:郭婷
-
嵌入式
+關注
關注
5087文章
19145瀏覽量
306144 -
cpu
+關注
關注
68文章
10880瀏覽量
212204 -
RTOS
+關注
關注
22文章
817瀏覽量
119720
發布評論請先 登錄
相關推薦
評論