嵌入式開發(fā):RTOS或裸機(jī)——為什么很多人選擇RTOS
使用RTOS或裸機(jī)調(diào)度程序是嵌入式系統(tǒng)開發(fā)人員爭論的熱門話題。在裸機(jī)方面,嵌入式開發(fā)人員認(rèn)為他們可以結(jié)合使用基于優(yōu)先級的中斷和計時器來獲得具有更好性能和內(nèi)存占用的等效行為。RTOS方面認(rèn)為對于初學(xué)者來說易于調(diào)度和系統(tǒng)集成。無論人們站在哪一邊,這里有七個原因使開發(fā)人員可能決定從RTOS開始而不是裸機(jī)調(diào)度程序。
本文引用地址:http://www.ex-cimer.com/article/202210/439151.htm原因1–并發(fā)性
基于微控制器的系統(tǒng)通常只有一個處理核心,但需要執(zhí)行多個任務(wù)。在任務(wù)需要同時或并發(fā)執(zhí)行的應(yīng)用程序中,使用RTOS是有意義的。RTOS可以在內(nèi)存中同時擁有多個任務(wù),并且可以根據(jù)事件和優(yōu)先級在任務(wù)之間切換。可以使用裸機(jī)調(diào)度程序,但是裸機(jī)系統(tǒng)中的任務(wù)通常一次執(zhí)行一個,而不是同時執(zhí)行。
原因2–搶占
搶占是操作系統(tǒng)暫停一個任務(wù)以執(zhí)行更高優(yōu)先級任務(wù)的能力。如果正在開發(fā)的嵌入式軟件需要區(qū)分任務(wù)的優(yōu)先級并中斷當(dāng)前正在運(yùn)行的任務(wù),那么RTOS就是最好的操作系統(tǒng)。大多數(shù)RTOS系統(tǒng)的本質(zhì)是根據(jù)任務(wù)的優(yōu)先級和系統(tǒng)條件來確定在任何給定的時間應(yīng)該執(zhí)行哪些任務(wù)??梢蚤_發(fā)裸機(jī)調(diào)度程序,使用基于優(yōu)先級的中斷來模擬這種類型的行為,但是使用RTOS更適合這種情況。
原因3–可用內(nèi)存
微控制器上可用RAM的數(shù)量是嵌入式開發(fā)人員決定使用RTOS還是裸機(jī)調(diào)度器的一個重要因素。由于每個任務(wù)都有自己的任務(wù)控制塊和堆棧,所以RAM少于4千字節(jié)的資源受限系統(tǒng)可能很難適應(yīng)內(nèi)存。另一方面,裸機(jī)系統(tǒng)通常只有一個堆棧,不需要額外的開銷來跟蹤每個系統(tǒng)任務(wù)的狀態(tài)。在使用RTOS解決方案之前,基于微控制器的系統(tǒng)至少應(yīng)該有4千字節(jié)的RAM(最好是8千字節(jié))。
原因4–可用閃存
由于開發(fā)人員在決定使用RTOS之前應(yīng)該查看系統(tǒng)上有多少可用內(nèi)存,所以開發(fā)人員還應(yīng)該查看有多少可用閃存空間。RTOS系統(tǒng)不會占用太多的閃存空間,通常在8到10千字節(jié)的數(shù)量級,但如果微控制器只有16千字節(jié)的閃存空間,就沒有多少空間留給應(yīng)用程序代碼了。如果微控制器具有至少32千字節(jié)的閃存空間,則該系統(tǒng)是使用RTOS的良好候選。如果做得不夠,可能是時候清理裸機(jī)調(diào)度程序或升級硬件了。
原因5–同步工具
使用裸機(jī)調(diào)度程序的一個問題是,它缺少默認(rèn)包含在RTOS中的同步工具。例如,RTOS具有可用于保護(hù)共享資源的互斥體、可用于發(fā)送信號和同步任務(wù)的信號量以及在任務(wù)間傳輸數(shù)據(jù)的消息隊列。正確地設(shè)計和實(shí)現(xiàn)這些核心軟件功能并不簡單,從頭開始將它們添加到裸機(jī)調(diào)度程序中無疑會引入錯誤。如果一個系統(tǒng)有多個任務(wù)和受保護(hù)的資源需要同步,那么使用RTOS是明智的決定。
原因6–第三方軟件
當(dāng)今許多嵌入式開發(fā)人員面臨的一個問題是如何將第三方軟件棧和工具集成到他們的嵌入式系統(tǒng)中。很少有開發(fā)者想寫TCP/IP或者USB棧。市場上提供的許多第三方堆棧和工具都與各種RTOS兼容。RTOS的使用使得這些組件在軟件中即插即用,并且可以極大地加速軟件開發(fā)。使用第三方軟件的決定可能是應(yīng)該使用RTOS而不是裸機(jī)調(diào)度程序的一個主要指標(biāo)。
原因7–易于使用
幾乎每個微控制器和幾乎所有可以想象的應(yīng)用都可以使用RTOS系統(tǒng)。無論開發(fā)人員只是想創(chuàng)建一個快速原型還是構(gòu)建一個健壯的安全關(guān)鍵系統(tǒng),RTOS都是存在的,開發(fā)人員可以利用它并快速啟動和運(yùn)行。創(chuàng)建任務(wù)和利用RTOS工具很容易,而且非常強(qiáng)大,但是開發(fā)者需要注意,他們正確地分析了他們的任務(wù),并考慮了他們的系統(tǒng)設(shè)計。RTOS是一個強(qiáng)大的工具,但使用不當(dāng)會導(dǎo)致悲劇性的后果。
結(jié)論
開發(fā)人員無疑會繼續(xù)爭論是使用裸機(jī)調(diào)度程序還是RTOS。在某種程度上,決策是基于設(shè)計系統(tǒng)的開發(fā)人員的技能和經(jīng)驗(yàn)。在其他情況下,RTOS無疑是首要解決方案。如果有一點(diǎn)是明確的,那就是嵌入式開發(fā)人員需要了解每種解決方案的優(yōu)缺點(diǎn),以及如何在任一場景中正確地實(shí)現(xiàn)解決方案。
評論