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