嵌入式開發(fā)人員在開始新項(xiàng)目時(shí)面臨越來越多的挑戰(zhàn)。在萬物互聯(lián)時(shí)代到來之前,嵌入式系統(tǒng)幾乎沒有或沒有安全對(duì)策。如今,開發(fā)人員必須專注于增強(qiáng)嵌入式安全性,以防止在線對(duì)手和側(cè)通道攻擊,即使它們有致力于延長(zhǎng)電池壽命并配置響應(yīng)迅速且直觀的用戶界面。
多年來,對(duì)程序結(jié)構(gòu)的態(tài)度也發(fā)生了變化,從簡(jiǎn)單的循環(huán)到使用狀態(tài)機(jī),對(duì)于復(fù)雜的系統(tǒng),需要使用嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)。多核設(shè)備的廣泛使用也影響了開發(fā)人員構(gòu)建應(yīng)用程序的方式。
使用RTOS可以在嵌入式系統(tǒng)中帶來許多好處,包括更好的資源管理、可預(yù)測(cè)的應(yīng)用程序行為和改進(jìn)的響應(yīng)性。然而,采用RTOS需要重新思考程序結(jié)構(gòu),關(guān)于基于RTOS的開發(fā)產(chǎn)業(yè)界仍然存在一些誤解。資深媒體人Robert Huntley與Segger、Zephyr Project和北歐半導(dǎo)體(Nordic)的高管進(jìn)行了交談,了解到更多關(guān)于開發(fā)人員必須做出的關(guān)鍵決策,以及如何簡(jiǎn)化從傳統(tǒng)程序結(jié)構(gòu)向RTOS的過渡。
現(xiàn)存結(jié)構(gòu)的作用
一個(gè)根本問題是,現(xiàn)存程序結(jié)構(gòu)是否以及在哪里仍然有效。嵌入式RTOS供應(yīng)商Segger(德國(guó))的合作伙伴營(yíng)銷經(jīng)理Dirk Akemann說:“這里仍然有時(shí)間片輪轉(zhuǎn)的位置,但它越來越不受歡迎,這個(gè)問題與小資源MCU仍然相關(guān)。”
Linux基金會(huì)嵌入式系統(tǒng)副總裁兼Linux托管開源Zephyr項(xiàng)目主任Kate Stewart也提出了類似的觀點(diǎn)。“這一切都取決于系統(tǒng)設(shè)計(jì),”她說,“這是關(guān)于弄清楚嵌入式系統(tǒng)如何與硬件配合使用,以及您是否必須對(duì)任務(wù)和調(diào)度有精確性要求。”
Stewart說:“如果約束很簡(jiǎn)單,那么你可以使用循環(huán)。然而,如果您的設(shè)計(jì)使用更復(fù)雜的環(huán)境,想要利用安全、安全和通信協(xié)議,并且需要時(shí)間限制,則RTOS是必要的。”
當(dāng)被問及大學(xué)是否在向?qū)W生開發(fā)人員講授使用RTOS的好處和如何使用時(shí),Akemann表示有工作要做。他說:“一個(gè)計(jì)算機(jī)科學(xué)程序員,他們基本上知道如何編程,但這與嵌入式設(shè)計(jì)中的具體要求無關(guān),而且真正解決這一問題的課程仍然很少,從電氣工程專業(yè)的角度來看,它是相似的問題。”
RTOS具有可移植性
在實(shí)施基于RTOS的開發(fā)方法時(shí),需要做出一些關(guān)鍵決定。Stewart說:“你必須了解的第一件事是在系統(tǒng)內(nèi)工作所需的資源限制。你完成任務(wù)的處理器配置是什么?你需要消耗多少電力?然后還有考慮,您是否有完成任務(wù)所需的通信等內(nèi)容要求,啟動(dòng)過程中是否有時(shí)間考慮因素,以及您可能需要的采樣率是多少。另一個(gè)因素是設(shè)備是否必須與人機(jī)交互。”
Akemann指出了代碼可移植性越來越重要。“如果您有在許多不同平臺(tái)上運(yùn)行的RTOS,當(dāng)您選擇的MCU不再可用或出現(xiàn)供應(yīng)鏈問題時(shí),您可以切換芯片。然而,請(qǐng)記住,如果你不使用RTOS,你的可移植性就會(huì)消失。”
首次使用RTOS的開發(fā)人員面臨著學(xué)習(xí)曲線,但Akemann表示,這不是不可逾越的。他說:“通常,客戶會(huì)實(shí)施相當(dāng)笨重的一個(gè)應(yīng)用程序,但根據(jù)我的經(jīng)驗(yàn),他們很快就習(xí)慣了。Segger通過為我們的embOS RTOS提供一份包含許多示例的手冊(cè)來提供幫助。最初,人們只編寫一個(gè)超級(jí)循環(huán)應(yīng)用程序,并在將任務(wù)分配給特定進(jìn)程之前將所有內(nèi)容都放在一個(gè)任務(wù)中。他們甚至可能認(rèn)為操作系統(tǒng)中存在一些魔力,操作系統(tǒng)將讓他們有機(jī)會(huì)比以前做得更多。情況并非如此,但通常情況下,客戶會(huì)很快習(xí)慣這種現(xiàn)實(shí)。”
糾正誤解
關(guān)于RTOS的一個(gè)常見誤解是,與類似的裸機(jī)方法相比,內(nèi)存要求要高得多。Stewart反駁說“Linux基金會(huì)的開源RTOS Zephyr項(xiàng)目只需要10kB就可以運(yùn)行一個(gè)Blinky應(yīng)用程序(閃爍LED而不是顯示“你好,世界”),然后您可以使用Zephyr Kconfig文件和設(shè)備樹來添加您需要的其余部分,一切都已經(jīng)集成到代碼庫(kù)中。”
Stewart還駁斥了RTOS是一個(gè)黑匣子的假設(shè),她觀察到:“當(dāng)事情出錯(cuò)時(shí),你需要有透明度和理解能力,這就是你通過開源RTOS獲得的。因此,當(dāng)事情不成功時(shí),你可以把你的分析放到一個(gè)新的層級(jí)去做。”
Akemann談到了這樣的想法,即使用RTOS可以比沒有RTOS做更多事情,同時(shí)在這個(gè)過程中對(duì)硬件施加“小限制”。他說RTOS將“增加一點(diǎn)執(zhí)行時(shí)間,因?yàn)樾枰a執(zhí)行才能從一個(gè)任務(wù)切換到另一個(gè)任務(wù)”。
Akemann說,“另一個(gè)誤解是,RTOS是一個(gè)完整的操作系統(tǒng),就像Windows或Linux一樣。嵌入式RTOS并非如此,它通常只是調(diào)度器本身。它不附帶IP堆棧、USB堆棧或支持其他外圍設(shè)備的協(xié)議。當(dāng)然,一些供應(yīng)商提供這些堆棧,但我們經(jīng)常從客戶那里聽到的誤解是,他們想要一個(gè)完整的操作系統(tǒng)”包括來自單一來源的一切中間件。
硬件抽象
北歐半導(dǎo)體(挪威)的開發(fā)人員營(yíng)銷經(jīng)理Ali Aljaani就開發(fā)人員如何接受RTOS概念提供了見解。“對(duì)于開發(fā)人員來說,這是一個(gè)相當(dāng)大的話題。”他說,“如果你設(shè)身處地為來自嵌入式大學(xué)課程的開發(fā)人員著想,你控制硬件的方法就是寫寄存器。與將硬件設(shè)備參數(shù)放入頭文件中不同,使用RTOS,硬件是從源代碼中抽象出來的,就Zephyr而言,所有內(nèi)容都被抽象成設(shè)備樹,因此當(dāng)您選擇目標(biāo)時(shí),它會(huì)選擇該硬件的設(shè)備樹。”
Aljaani說,Nordic認(rèn)識(shí)到需要對(duì)從裸機(jī)方法切換到RTOS的工程師進(jìn)行教育和指導(dǎo),并做出了相應(yīng)的響應(yīng)。“隨著硬件的不斷改進(jìn)、多個(gè)內(nèi)核和豐富的外圍設(shè)備,如果你想在裸機(jī)上做類似過程間通信的事情,那就是一場(chǎng)噩夢(mèng)。我們決定對(duì)教育進(jìn)行大量投資,并成立了北歐開發(fā)者學(xué)院。”Aljaani說“例如,我們的NR Connect SDK基礎(chǔ)知識(shí)課程解釋了Zephyr的行為,Zephyr是我們使用的核心RTOS組件,以及Kconfig和設(shè)備樹的概念。這些需要都是動(dòng)手操作的,所以我們從用一個(gè)很小的源代碼解釋想法開始,并繼續(xù)構(gòu)建。”
麥克泰技術(shù)是SEGGER在中國(guó)的代理商,具有超過20年嵌入式實(shí)時(shí)操作系統(tǒng)和工具的市場(chǎng)、服務(wù)和培訓(xùn)經(jīng)驗(yàn),已經(jīng)錄制許多RTOS視頻課程并撰寫博客文章,包括開源μC/OS,FreeRTOS和安全商業(yè)操作系統(tǒng)embOS,SafeRTOS和Flexible Safety RTOS,了解更多產(chǎn)品信息聯(lián)系麥克泰技術(shù)Info@bmrtech.com。
-
嵌入式
+關(guān)注
關(guān)注
5121文章
19416瀏覽量
312549 -
Linux
+關(guān)注
關(guān)注
87文章
11410瀏覽量
212186 -
RTOS
+關(guān)注
關(guān)注
24文章
836瀏覽量
120514
原文標(biāo)題:專家談何時(shí)放棄裸機(jī)開始使用RTOS
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
詳解RTOS中的Hook函數(shù)
RTOS中的本地存儲(chǔ)指針使用

如果需要使用DMD進(jìn)行成像控制,需要用到哪些部件?
要使TAS5754 正常工作,需要哪些步驟?
深入解析Zephyr RTOS的技術(shù)細(xì)節(jié)

RTOS正在縮小與Linux的差距

freertos和rtos區(qū)別是什么
RTOS與Linux有什么區(qū)別
RTOS的特性和類型
RTOS開發(fā)最佳實(shí)踐
什么是實(shí)時(shí)操作系統(tǒng)(3)-在 RTOS 中可以期待什么?

評(píng)論