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