感知、組織、分析、呈現(xiàn)和決策信息需要軟件。幾十年來,我們一直在使用各種平臺以不同級別的能力來執(zhí)行此任務(wù)。現(xiàn)在,我們擁有非常小的設(shè)備,這些設(shè)備由單節(jié)電池運行,具有1990年代后期基于80486的個人計算機的功率,下一個問題是顯而易見的 - 軟件。有了裸機的實時操作系統(tǒng)(RTOS)和像Linux這樣的真實操作系統(tǒng)可供選擇,我們將遇到無線電和計算機中探索的類似問題,但從軟件的角度來看。
從可擴展的軟件架構(gòu)開始是任何嵌入式應(yīng)用所必需的。在最終確定嵌入式應(yīng)用程序的編程體系結(jié)構(gòu)之前,必須考慮將來可能調(diào)用的增強軟件。許多工程師認為這是事后的想法,因為他們習慣于在操作系統(tǒng)之上編寫代碼。
另一個重要的考慮因素是成本。隨著系統(tǒng)功能的增加,對更快的處理器、更多的代碼內(nèi)存和 RAM 的需求也在增加。下面的圖 1 顯示了嵌入式系統(tǒng)的典型功能與成本關(guān)系圖,盡管在可能的硬件選擇方面,不同層之間的界限是模糊的:

在以下情況下,首選裸機編程:
該應(yīng)用程序很簡單,可以在低端處理器上實現(xiàn)。
應(yīng)用程序需要提取每個周期的CPU功率,并且操作系統(tǒng)引入的開銷是不可接受的。
安全性和安全性與硬件密切相關(guān),其中系統(tǒng)按照確切的期望執(zhí)行和運行,并且系統(tǒng)一直處于這種狀態(tài)。
硬件成本受到限制,并且需要出色的效率。
許多嵌入式應(yīng)用程序是無限循環(huán),其中它們執(zhí)行一個任務(wù),然后執(zhí)行另一個任務(wù),依此類推,重復(fù)相同的功能。這些任務(wù)中的大多數(shù)都是相互依賴的。裸機編程對于代碼應(yīng)該是可預(yù)測的、可理解的、并且應(yīng)該易于調(diào)試的情況并不理想。擁有調(diào)度程序使嵌入式工程師的生活更加簡單 - 每個軟件模塊都可以獨立設(shè)計,然后使用調(diào)度程序的幫助與其他軟件模塊鏈接和調(diào)度。因此,隨著代碼復(fù)雜性的增加以及系統(tǒng)需要功能強大的微處理器/微控制器,RTOS是首選。當MCU集成更多內(nèi)存和外設(shè)時,實時操作系統(tǒng)成為必需品。復(fù)雜的物聯(lián)網(wǎng)應(yīng)用可能需要更多的中斷源、更多的功能和更多的標準通信接口——主要是無線。在如此復(fù)雜的解決方案中可能需要RTOS。
實時操作系統(tǒng)可以充分利用功能豐富的MCU,特別是當提供中間件可以處理復(fù)雜任務(wù)時,否則將需要真正的操作系統(tǒng)。但是,在軟件方面,有許多不重疊的復(fù)雜性和功能領(lǐng)域。具有添加中間件的RTOS可以接近通用操作系統(tǒng)的功能。例如,中間件可以添加文件系統(tǒng)、網(wǎng)絡(luò)、圖形和復(fù)雜輸入支持等功能,盡管與本地支持這些功能的真正操作系統(tǒng)相比,需要增加開發(fā)工作。一些遠程操作系統(tǒng)甚至支持 POSIX API,這些 API 可以在一定程度上重用來自 Linux/Unix 應(yīng)用程序的代碼。
但是,當應(yīng)用程序復(fù)雜性增加到超過特定限制時,通用嵌入式操作系統(tǒng)就會顯現(xiàn)出來。這時,處理器會說:“給我一個MMU,我就可以解決你所有的問題。由于其代碼大小和主存儲器要求,昂貴的SRAM和NOR存儲器變得不切實際。大多數(shù)嵌入式版本的通用操作系統(tǒng)需要至少 16-32 MB 的主內(nèi)存和 64+MB 的代碼存儲才能正常運行。幸運的是,應(yīng)用處理器和通用操作系統(tǒng)能夠處理更便宜、更慢的存儲器,如DRAM和NAND閃存。
當您遷移到嵌入式通用操作系統(tǒng)時,您不會丟失“實時功能”。它們能夠以略高的延遲級別運行實時應(yīng)用程序,具有不同級別的確定性(“軟實時”)。但大多數(shù)應(yīng)用程序不需要“硬實時”功能。在嵌入式操作系統(tǒng)上運行的經(jīng)過良好驗證的應(yīng)用程序可以像在中間件的幫助下在RTOS上運行的類似應(yīng)用程序一樣防彈和確定性。
由于持續(xù)的硅擴展以及大量工程師對合適的操作系統(tǒng)更滿意,應(yīng)用處理器和內(nèi)存的成本每年都在降低,許多本來會使用RTOS的應(yīng)用程序現(xiàn)在發(fā)現(xiàn)應(yīng)用處理器+適當?shù)牟僮飨到y(tǒng)組合具有成本效益,并且還縮短了上市時間。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5200文章
20497瀏覽量
334760 -
cpu
+關(guān)注
關(guān)注
68文章
11290瀏覽量
225300 -
RTOS
+關(guān)注
關(guān)注
25文章
866瀏覽量
123091
發(fā)布評論請先 登錄
Parasoft C/C++test:嵌入式安全關(guān)鍵行業(yè)的一體化軟件測試解決方案
C語言嵌入式系統(tǒng)編程注意事項-內(nèi)存操作
RZ/A3M芯片:性能卓越的嵌入式解決方案
嵌入式系統(tǒng)軟件架構(gòu)通常劃分
CW32嵌入式軟件開發(fā)的必備知識
嵌入式軟件分層架構(gòu)設(shè)計原則
嵌入式和FPGA的區(qū)別
嵌入式軟件測試與專業(yè)測試工具的必要性深度解析
嵌入式達到什么水平才能就業(yè)?
是德示波器MSOX3052T在嵌入式系統(tǒng)中的應(yīng)用
請問從哪里可以獲取CCG5 軟件開發(fā)及Layout注意事項?
瑞芯微RK3288解決方案:高性能、高擴展性的嵌入式系統(tǒng)設(shè)計理念與應(yīng)用分析
設(shè)置射頻網(wǎng)絡(luò)分析儀的測試條件有哪些注意事項
瑞芯微嵌入式方案概述
構(gòu)建嵌入式解決方案的各種CPU架構(gòu)的軟件注意事項
評論