女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一種實現亞毫秒定時分辨率的RTOS新方法

麥克泰技術 ? 來源:麥克泰技術 ? 2024-12-17 13:58 ? 次閱讀

你在使用實時操作系統(RTOS)時是否發現無法將任務調度或延遲精度降到毫秒以下?你可能不得不在RTOS之外編寫大量應用代碼。雖然這種方式可行,但這會讓你懷疑應用程序是否滿足其截止期限,是否可維護和可擴展。RTOS不應該能夠管理整個應用程序的時間嗎,不管這個時間是一秒還是一微秒?

對于嵌入式系統領域的開發和管理人員來說,平衡時間精度和能源效率可能是一項持續的斗爭。隨著應用的發展,無論是在汽車、物聯網、醫療設備還是工業自動化領域,對精確定時控制的需求都在增長。雖然傳統的RTOS解決方案在管理實時任務方面很有效,但在這兩個關鍵領域往往存在不足。

1. 傳統RTOS的不足

首先,傳統RTOS有精度限制。基于滴答的系統不能提供超出滴答(Tick)間隔(如1毫秒)的時間粒度。這種限制影響了執行超精細定時操作的能力,例如精密傳感器讀數或先進機器人的高分辨率控制。事實上,如果不仔細,你甚至可能任務時序中注入抖動,從而破壞系統的實時性能!

其次,基于滴答的RTOS能效低!即使沒有任務調度,周期系統滴答中斷也會使CPU保持活動狀態,從而導致能源浪費,這在電池供電和低功耗設備中尤為嚴重。雖然一些RTOS試圖通過引入tickless省電模式來克服這個缺陷,但這些解決方案更多的是權宜之計,而不是完整的功能。

這些限制迫使開發人員采用效率低下的解決方案,例如輪詢硬件計時器或使用特定于目標的技術來實現更高的分辨率和更低的功耗,這種方法使開發過程復雜化,降低了軟件的可移植性和可維護性。

本文中,我們將探索一種新的機制來精確地調度低于一毫秒的任務,這種機制可以提高應用程序的實時性能,同時提高能效,其好處來自于利用周期精度定時的新RTOS實現。

2. 從基于滴答的調度到基于周期的調度

傳統的RTOS使用周期性的系統滴答來跟蹤時間和調度任務。例如,大多數RTOS,如FreeRTOS、Zephyr和embOS-Base,默認使用1毫秒的滴答間隔。這個間隔依賴于每毫秒產生一次中斷的計時器。所有時間相關的操作(任務延遲、超時和軟件計時器)都與滴答對齊。如果我們使用SEGGER SystemView這樣的工具來記錄和分析應用程序的運行時行為,將看到類似圖1所示的內容。

98cfd856-b8ff-11ef-8732-92fbcf53809c.png

圖1:使用周期滴答來跟蹤系統時間的傳統RTOS

如圖所示,系統每隔一毫秒就會中斷一次應用,如果系統處于睡眠狀態并且沒有其他的工作要做,它也會被喚醒以增加計數并返回睡眠狀態!

基于滴答的設計限制了計時精度,并引入了延遲,因為不能以比滴答間隔更細的粒度調度任務,這是我在許多應用中遇到的一個問題,它迫使你思考RTOS之外的實現。

基于周期的調度通過用單次硬件定時器(single-shot hardware timer)代替周期滴答中斷消除了這種約束。計時器只在需要時產生中斷,而非每毫秒喚醒CPU,從而允許將事件調度精確到微秒或CPU周期。這種方法提高了精度,減少了CPU的活動,節約了能源。

讓我們來看一個例子。考慮一個需要持續4.7毫秒的任務延遲。在擁有1毫秒滴答間隔的RTOS中,延遲要么提前結束(4毫秒),要么延長(5毫秒),具體取決于滴答計時。使用基于周期的調度可以實現精確的4.7毫秒延遲,因為它不再依賴于滴答間隔。

3. embOS-Ultra:高精度和高效率的技術解決方案

如果調查當今的RTOS市場,你會發現SEGGER的embOS-Ultra是唯一支持基于周期調度的RTOS。因此,我們將關注embOS-Ultra如何通過引入周期分辨率定時來解決精度和效率方面的挑戰,以及這種創新方法如何改善應用。

讓我們來分析一下embOS-Ultra是如何在不增加不必要復雜性的情況下解決精度和效率問題。

通過單次計時器提高能效

通過移除周期滴答,embOS-Ultra顯著降低了CPU負載。即使沒有待處理的工作,傳統的RTOS也會在每個滴答喚醒CPU,這種行為增加了功耗,因為CPU必須保存其當前狀態,處理中斷,并恢復其狀態,這些不必要的CPU周期消耗了能量。

embOS-Ultra的單次計時器僅在特定事件發生時喚醒CPU,使系統長時間處于低功耗狀態。這一特性對于低功耗和電池供電的應用尤其有利,例如可穿戴設備或遠程物聯網傳感器,在這些應用中,節省的每一點能量都將延長運行時間。然而,即使是連接到恒定電源的設備也可以通過降低其整體能量配置和減少對電網的需求而受益。

在許多微控制器架構中,計時器可以配置為各種模式。EmbOS-Ultra利用定時器計數到零或到指定值的模式,在需要時觸發中斷。這種靈活性使開發人員能夠精確地控制時間事件,而不依賴于周期滴答。正如想象的那樣,允許計時器自由計數用于調度,比計數為零后重置更有好處。

維護系統的長期穩定性

你可能會認為,雖然使用單個計時器來提供高分辨率、亞毫秒級的調度聽起來很棒,但丟失系統滴答將破壞應用程序。好消息是它不會,embOS-Ultra使用兩個硬件計時器。一個計時器用于長期連續運行而不產生中斷。第二個計時器,即我們在前一節中討論的單次計時器,用于任務調度。

這意味著沒有復雜的算法在后臺運行,試圖確定自系統啟動以來已經過了多少毫秒。誠實地說:我們大多數人都利用系統滴答來提供時間戳、計算過濾器和執行其他日常活動。如果從RTOS中刪除它,我們的開發將變得更加困難。

添加第二個計時器似乎會增加系統的復雜性和能效,但事實并非如此。如今,大多數32位微控制器擁有多個計時器,而且與CPU相比,計數器使用的電流很少。使用第二計時器的權衡仍然確保我們最大限度地減少能耗,同時保持系統實時性能的長期穩定性。

4. 基于周期調度的應用

了解了周期調度如何工作后,我們來研究一個示例。SEGGER的網站上提供了一個live comparison示例(https://www.segger.com/products/rtos/embos/editions/embos-ultra/#live-comparison),模擬滴答調度和周期調度行為。我建議嘗試一下,獲得一些實際操作經驗。

Live comparison示例允許你通過print語句查看每秒產生了多少次滴答。測試應用包含兩個任務:一個201毫秒的任務和一個50毫秒的任務。基于滴答的調度器,每秒1000個節拍。如果使用基于周期的調度來模擬相同的應用程序,則每秒只能獲得24 - 25個節拍。

遺憾的是,對于模擬程序,無法使用SystemView來記錄和分析應用程序行為,因此,我使用live comparison示例運行在開發板上來分析周期調度。結果如圖2所示:

98e3c3de-b8ff-11ef-8732-92fbcf53809c.png

圖2:圖1所示的相同應用程序的基于周期調度實現

如果查看圖2中分析窗口底部的計時差異,你將看到系統的滴答間隔不是固定的。只有在必要時才有一個滴答,在圖2的底部可以看到,滴答之間有49.9毫秒的間隔,然后是16.9毫秒的延遲,以此類推。這是基于周期的計時!基于周期的調度應用程序每秒只有24 - 25個滴答,具體取決于任務的截止時限。

5. 使用基于周期的調度,同時保持向后兼容性

遷移到新的RTOS帶來的風險和復雜性,可能是開發人員和管理人員非常關心的問題。embOS-Ultra通過在提供擴展功能的同時保持與現有API兼容來解決這個問題。

首先,對使用embOS-Base或其他滴答RTOS API的應用程序,可以在embOS-Ultra中繼續發揮預期的作用。embOS-Ultra中保留了基于毫秒的計時功能,確保已有代碼無需修改。如果使用的是embOS-Base,則API直接兼容。如果使用其它RTOS,你可能會有一天左右的時間將RTOS調用更新為embOS-Ultra。

其次,對于需要更高精度的開發人員,embOS-Ultra引入了擴展的API,例如用于微秒延遲的OS_TASK_Delay_us()或用于周期調度的OS_TASK_Delay_Cycles()。這些函數與傳統API調用共存,允許開發人員在不修改整個代碼庫的情況下逐步采用高級功能。

讓我們來看一個例子。假設我們想每1,000,000個周期向終端發送一次打印“Hello World!”,我可能會用下面的語法創建一個名為Hello的RTOS任務:

98f6ffe4-b8ff-11ef-8732-92fbcf53809c.png

OS_TASK_Delay_Cycles以周期方式指定了任務掛起操作的最小時間間隔,因此,當調用OS_TASK_Delay_Cycles時,如果系統周期計數為1,000,000,則100萬周期的延遲將在系統周期計數為2,000,000時到期。

注意,作為開發人員,你可以控制單個周期所代表的時間間隔。它可以是單個CPU周期,也可以是更長的時間,這取決于你如何為使用的計時器配置時鐘分頻器。好消息是,SEGGER為各種微控制器提供了許多移植實現,所以你不必自己編寫這些;只有當默認值不能滿足需要時,才需要知道如何通過API來調整。

這種雙重計時方法意味著工程師不必在傳統實現和高精度之間做出選擇,他們可以在同一應用中同時使用這兩種方法。無論是從embOS-Base還是其他基于滴答的系統(如CMSIS-RTOS)遷移,開發人員都可以很方便的使用embOS-Ultra,因為必要的應用更改很小且簡單。

6. 下一步工作

基于周期的調度代表了一種技術進步,它解決了開發人員和管理人員在當今嵌入式系統中面臨的核心挑戰,在實現微秒精度的同時最大限度地提高能效。通過消除傳統的系統滴答,并提供靈活的、基于周期的方法,embOS-Ultra提供了一種精確、節能且與現有RTOS設置兼容的解決方案。

基于周期的調度為希望在沒有復雜遷移風險的情況下提高系統的性能和能源配置的嵌入式專業人員提供了一種實用而先進的替代方案。你可以通過下列步驟了解更多關于周期調度的信息。

首先,查看embOS-Ultra RTOS手冊(https://www.segger.com/downloads/embos/UM01076_embOS_Ultra.pdf),它包含了許多示例,描述了高精度和周期調度如何工作。

接下來,可以下載并試用基于SEGGER的示例仿真項目(https://www.segger.com/products/rtos/embos/editions/embos-ultra/#live-comparison),你可以使用它來測試embOS-Base和embOS-Ultra之間的差異,甚至可以在開發板上嘗試。

最后,確認了更精確的計時和節能的好處后,即可在嵌入式系統采用基于周期計時功能了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RTOS
    +關注

    關注

    24

    文章

    840

    瀏覽量

    120743
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58704

原文標題:一種實現亞毫秒定時分辨率的RTOS新方法

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何計算存儲示波器的垂直分辨率

    存儲示波器的垂直分辨率是指示波器能夠分辨的最小電壓變化量,它反映了示波器對信號幅度細節的測量能力,通常用位數(bit)來表示,也可通過相關公式換算為具體的電壓值。以下為你詳細介紹其計算方法:了解關鍵
    發表于 05-30 14:03

    高光譜相機的空間分辨率,光譜范圍等參數我們要如何理解

    高光譜相機作為一種強大的成像工具,其性能由多個關鍵參數決定,其中 空間分辨率 和 光譜范圍 尤為重要。理解這些參數的含義及其影響,對于選擇合適的高光譜相機至關重要。我們可以綜合下圖的參數來做對
    的頭像 發表于 03-14 10:35 ?387次閱讀

    DLPDLCR3310EVM如何實現分辨率擴展的?

    DLPDLCR3310EVM 您好,請問該款光機如何實現分辨率擴展的?從1368*768到1920*1080,是和0.47‘’樣用了DLP XPR技術嗎?
    發表于 02-18 08:04

    GD32G5x3系列高分辨率定時器使用指南

    電子發燒友網站提供《GD32G5x3系列高分辨率定時器使用指南.pdf》資料免費下載
    發表于 01-22 17:32 ?0次下載
    GD32G5x3系列高<b class='flag-5'>分辨率</b><b class='flag-5'>定時</b>器使用指南

    如何提高透鏡成像的分辨率

    透鏡成像分辨率是指透鏡系統能夠分辨的最小細節的能力。提高透鏡成像分辨率對于許多應用領域,如顯微鏡、望遠鏡、相機等,都是至關重要的。以下是些提高透鏡成像
    的頭像 發表于 12-25 16:54 ?931次閱讀

    一種降低VIO/VSLAM系統漂移的新方法

    本文提出了一種新方法,通過使用點到平面匹配將VIO/VSLAM系統生成的稀疏3D點云與數字孿生體進行對齊,從而實現精確且全球致的定位,無需視覺數據關聯。所提
    的頭像 發表于 12-13 11:18 ?580次閱讀
    <b class='flag-5'>一種</b>降低VIO/VSLAM系統漂移的<b class='flag-5'>新方法</b>

    HDMI接口支持哪些視頻分辨率

    支持最大分辨率4K(3840x2160)@60Hz。與HDMI 1.4相比,HDMI 2.0在4K分辨率下的刷新提高了倍,達到每秒60幀,提供更流暢的視頻體驗。 也支持1080p
    的頭像 發表于 11-27 14:14 ?8826次閱讀

    新型寬帶UV頻率梳提供前所未有的光譜分辨率

    研究人員開發出一種新的超快激光平臺,可產生具有前所未有的一百萬條梳狀線的超寬帶紫外(UV)頻率梳,提供卓越的光譜分辨率。這種新方法還能產生極其精確和穩定的頻率,可增強高分辨率原子和分子
    的頭像 發表于 11-20 06:24 ?441次閱讀
    新型寬帶UV頻率梳提供前所未有的光譜<b class='flag-5'>分辨率</b>

    使用MSP430高分辨率定時器的PWM DAC

    電子發燒友網站提供《使用MSP430高分辨率定時器的PWM DAC.pdf》資料免費下載
    發表于 09-20 10:53 ?0次下載
    使用MSP430高<b class='flag-5'>分辨率</b><b class='flag-5'>定時</b>器的PWM DAC

    Arm精銳超級分辨率技術解析

    近日,Arm 推出了 Arm 精銳超級分辨率技術 (Arm Accuracy Super Resolution, Arm ASR),這是款面向移動設備進行優化升級的出色開源超級分辨率(下文簡稱“超分”)解決方案。本文將為你介紹
    的頭像 發表于 09-03 11:28 ?1268次閱讀
    Arm精銳超級<b class='flag-5'>分辨率</b>技術解析

    什么是高分辨率示波器?它有哪些優勢?

    分辨率示波器是一種在信息與系統科學相關工程與技術領域中廣泛應用的科學儀器,其設計旨在提供更高的信號分辨率和更精細的信號分析能力。以下是對高分辨率示波器的詳細解析,包括其定義、優勢以及
    的頭像 發表于 08-08 11:49 ?1690次閱讀

    一種無透鏡成像的新方法

    使用OAM-HHG EUV光束對高度周期性結構進行成像的EUV聚光顯微鏡 為了研究微電子或光子元件中的納米級圖案,一種基于無透鏡成像的新方法可以實現近乎完美的高分辨率顯微鏡。 層析成像
    的頭像 發表于 07-19 06:20 ?682次閱讀
    <b class='flag-5'>一種</b>無透鏡成像的<b class='flag-5'>新方法</b>

    VR顯示器分辨率的選擇

    、VR顯示器分辨率的重要性 1.1 分辨率與視覺體驗 分辨率是指顯示器上能夠顯示的像素點的數量,通常用水平像素數×垂直像素數來表示。在VR顯示器中,
    的頭像 發表于 07-08 10:29 ?2161次閱讀

    用于波長分辨率的新型衍射成像儀

    ? 研究人員提出了一種對相位和振幅物體進行波長分辨率成像的新方法。他們的技術依靠帶有固體浸透層的衍射編碼和解碼來恢復與物體波長特征相對應
    的頭像 發表于 06-28 06:32 ?410次閱讀

    伺服編碼器分辨率是什么意思

    。 伺服編碼器分辨率的概念 伺服編碼器是一種用于測量電機軸或負載位置和速度的傳感器。它通過將機械位置轉換為電信號,為伺服控制系統提供反饋信息。編碼器的分辨率是指它能夠檢測到的最小角度或位置變化,通常以脈沖數或位表
    的頭像 發表于 06-17 11:16 ?1525次閱讀