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

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

3天內(nèi)不再提示

RTOS的系統(tǒng)節(jié)拍

倩倩 ? 來源:麥克泰技術(shù) ? 作者:麥克泰技術(shù) ? 2022-09-20 11:08 ? 次閱讀

RTOS的系統(tǒng)節(jié)拍

傳統(tǒng)的RTOS都是利用一個硬件定時器產(chǎn)生周期性的節(jié)拍中斷,作為系統(tǒng)的時基。在多數(shù)的應用中,系統(tǒng)節(jié)拍的周期都是毫秒級的,RTOS的超時、延遲、定時的分辨率都是以節(jié)拍為單位。即使一個任務在幾個連續(xù)的節(jié)拍內(nèi)執(zhí)行,系統(tǒng)節(jié)拍中斷還是會周期性的發(fā)生,浪費了CPU的執(zhí)行時間。下圖是一個示例,雖然某段時間內(nèi)只有IDLE任務在執(zhí)行,系統(tǒng)節(jié)拍中斷還是會如期發(fā)生。

ea3ca35a-3890-11ed-ba43-dac502259ad0.png

此外,任務延遲或超時等時間相關(guān)的功能都基于系統(tǒng)滴答中斷計時,計時時間到后,通過系統(tǒng)節(jié)拍周期中斷觸發(fā)調(diào)度器。因此,如果任務的延遲時間小于一個系統(tǒng)節(jié)拍周期,則只能主動等待,直到所需的時間結(jié)束。

ea76de62-3890-11ed-ba43-dac502259ad0.png ?

周期級分辨率的RTOS

SEGGER之前推出的embOS Ultra,改變了過去RTOS采用周期節(jié)拍中斷作為系統(tǒng)時基的工作方式,采用硬件定時器加計數(shù)器的方式,只在必要時產(chǎn)生中斷。這就消除了傳統(tǒng)的周期性節(jié)拍中斷,減少了不必要的CPU活動,同時能降低系統(tǒng)的功耗。embOS Ultra基于時間事件的調(diào)度都能以微秒指定。

eaa11f7e-3890-11ed-ba43-dac502259ad0.png ?

體驗embOS Ultra微秒級調(diào)度

目前embOS Ultra支持CortexM/R/A,以及RISC-V架構(gòu)的處理器。從官網(wǎng)可以下載到基于SEGGER Embedded Studio的示例Demo,用于測試,內(nèi)核以二進制庫提供。embOS Ultra的API完全兼容embOS,只是多了幾個任務管理的API,任務可以按照ms或us延遲。

ead43c9c-3890-11ed-ba43-dac502259ad0.png

先將Demo例程的任務做了修改,HPTask分別以1000us、2000us不等延遲,LPTask以80ms延遲。


static void HPTask(void) { while (1) {   BSP_SetLED(0);   OS_TASK_Delay_us(1000);   BSP_ClrLED(0);   OS_TASK_Delay_us(2000);   BSP_SetLED(0);   OS_TASK_Delay_us(3000);   BSP_ClrLED(0);   OS_TASK_Delay_us(4000); }}
static void LPTask(void) { while (1) {  BSP_ToggleLED(1);  OS_TASK_Delay_ms(80u); }}

下載代碼至目標板上運行,通過SystemView來觀測系統(tǒng)的執(zhí)行:

eb3fd6b4-3890-11ed-ba43-dac502259ad0.png

從OS事件視圖可以看到,系統(tǒng)不存在周期性的節(jié)拍中斷,只是在需要進行任務調(diào)度時觸發(fā)一次中斷。從下面的Timeline視圖可以更直觀的看出,紅色涂抹的位置是系統(tǒng)中斷。

eb757ad0-3890-11ed-ba43-dac502259ad0.png

注意上圖中的時間(996.8us、1.9ms,2.9ms……)并不是任務的間隔時間,而是調(diào)度器執(zhí)行的間隔時間。

再將任務代碼改成:


static void HPTask(void) { while (1) {   BSP_SetLED(0);   OS_TASK_Delay_us(50);   BSP_ClrLED(0);   OS_TASK_Delay_us(100); }}
static void LPTask(void) { while (1) {  BSP_ToggleLED(1);  OS_TASK_Delay_us(200u); }}

HPTask任務分別延遲50us和100us,LPTask延遲200us,運行后觀測Timeline:

ebc16274-3890-11ed-ba43-dac502259ad0.png

HPTask首次執(zhí)行延遲了50us之后,系統(tǒng)定時器中斷觸發(fā),調(diào)度器開始執(zhí)行,從IDEL任務切換到HPTask任務。同時可以發(fā)現(xiàn),從中斷觸發(fā)到HPTask任務體開始執(zhí)行實際上已經(jīng)過去了10us,這是因為中斷處理和任務調(diào)度的執(zhí)行需要消耗一定CPU時間,這個與處理器架構(gòu)和CPU運行頻率有關(guān),在Cortex-M上大概在10us左右。也就是說在當前的處理器上,延遲時間小于10us是沒有意義的,但是在主頻很高的MPU(應用處理器)上這個時間可能要短很多。

總之,現(xiàn)在很多的MCU的性能都已經(jīng)很高了。同時,一些應用要求處理器有比較高的計算能力,還要求系統(tǒng)能有很好的實時性,甚至在MPU上使用RTOS。此種應用場景下,如果RTOS支持CPU周期級別的分辨率,這實際上可以進一步提升系統(tǒng)的實時性。而且,在針對一些外設的處理上,使用微秒級的延遲,還能提高CPU的使用效率,擴展了RTOS的潛在應用范圍。


審核編輯 :李倩


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

    關(guān)注

    146

    文章

    16796

    瀏覽量

    349331
  • 高分辨率
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    15297
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3226

    瀏覽量

    114144

原文標題:embOS-Ultra:高分辨率系統(tǒng)時間

文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    深入解析Zephyr RTOS的技術(shù)細節(jié)

    Zephyr是一個針對資源受限設備優(yōu)化的小型、可縮放、多體系架構(gòu)實時操作系統(tǒng)RTOS)。Zephyr由Linux基金會維護[1],是一個以構(gòu)建業(yè)界最佳的RTOS為目標的開源合作項目。近年來
    的頭像 發(fā)表于 10-22 16:47 ?74次閱讀
    深入解析Zephyr <b class='flag-5'>RTOS</b>的技術(shù)細節(jié)

    RTOS正在縮小與Linux的差距

    RTOS與Linux的物聯(lián)網(wǎng)設備操作系統(tǒng)之爭已經(jīng)持續(xù)了很多年。Linux以其強大的計算能力和豐富的軟件生態(tài),在需要復雜處理和軟件支持的物聯(lián)網(wǎng)設備上占據(jù)一席之地;RTOS憑借實時響應和資源節(jié)約的特性
    的頭像 發(fā)表于 09-10 08:07 ?619次閱讀
    <b class='flag-5'>RTOS</b>正在縮小與Linux的差距

    freertos和rtos區(qū)別是什么

    FreeRTOS 和 RTOS(實時操作系統(tǒng))是兩個不同的概念,但它們之間有緊密的聯(lián)系。FreeRTOS 是一個特定的開源實時操作系統(tǒng),而 RTOS 是實時操作
    的頭像 發(fā)表于 09-02 14:18 ?636次閱讀

    RTOS系統(tǒng)在國產(chǎn)工業(yè)級HMI芯片Model系列中的深度應用與性能優(yōu)化

    本技術(shù)分享,我們將深入剖析RTOS系統(tǒng)的核心原理、優(yōu)勢特性及其在Model系列芯片上的實現(xiàn)與應用。
    的頭像 發(fā)表于 08-23 10:57 ?304次閱讀
    <b class='flag-5'>RTOS</b><b class='flag-5'>系統(tǒng)</b>在國產(chǎn)工業(yè)級HMI芯片Model系列中的深度應用與性能優(yōu)化

    RTOS與Linux有什么區(qū)別

    RTOS(Real-Time Operating System,實時操作系統(tǒng))與Linux是兩種在不同應用場景下發(fā)揮重要作用的操作系統(tǒng),它們在設計理念、功能特性、應用場景以及性能表現(xiàn)等方面存在顯著差異。以下是對
    的頭像 發(fā)表于 08-20 16:05 ?2214次閱讀

    RTOS的特性和類型

    實時操作系統(tǒng)RTOS)是一種可運行實時計算應用程序的軟件平臺,用于處理具有明確時間約束的事件和數(shù)據(jù)。與通用操作系統(tǒng)(GPOS)不同,RTOS必須在有限的硬件資源上調(diào)度應用程序之間的處
    的頭像 發(fā)表于 08-20 11:29 ?385次閱讀

    RTOS開發(fā)最佳實踐

    基于RTOS編寫應用程序時,有一些要注意事項。在本節(jié)中,您將學習RTOS開發(fā)最佳實踐,例如POSIX合規(guī)性、安全性和功能安全認證。
    的頭像 發(fā)表于 08-20 11:24 ?315次閱讀

    簡單認識RTOS實時操作系統(tǒng)

    RTOS(Real Time Operating System,實時操作系統(tǒng))是一種專門設計用于在嚴格時間限制內(nèi)處理任務的操作系統(tǒng)。它以其高實時性、多任務處理能力和資源管理能力在工業(yè)自動化、醫(yī)療設備、航空航天、汽車電子等眾多領(lǐng)域
    的頭像 發(fā)表于 08-20 11:20 ?1693次閱讀

    什么是實時操作系統(tǒng)(3)-在 RTOS 中可以期待什么?

    RTOS使用各種機制來管理任務、事件和內(nèi)存,以確保嵌入式系統(tǒng)滿足時間約束。在本節(jié)中,您將了解構(gòu)建嵌入式應用程序時需要考慮的RTOS功能,例如確定性、空間和時間分離、調(diào)度、內(nèi)存管理和進程間通信。
    的頭像 發(fā)表于 07-23 12:00 ?915次閱讀
    什么是實時操作<b class='flag-5'>系統(tǒng)</b>(3)-在 <b class='flag-5'>RTOS</b> 中可以期待什么?

    帶你認識實時操作系統(tǒng)(rtos)

    實時操作系統(tǒng)RTOS)是為嵌入式系統(tǒng)和實時應用提供一個穩(wěn)定、可預測和高效運行環(huán)境的操作系統(tǒng)。實時操作系統(tǒng)確保了
    的頭像 發(fā)表于 04-16 16:30 ?968次閱讀
    帶你認識實時操作<b class='flag-5'>系統(tǒng)</b>(<b class='flag-5'>rtos</b>)

    基于RTOS的應用進程中的典型線程

    RTOS中的關(guān)鍵因素是最小的中斷延遲和最小的線程切換延遲。RTOS的價值在于它的響應速度或可預測性,而不是它在給定時間段內(nèi)可以執(zhí)行的工作量。
    發(fā)表于 03-05 09:32 ?471次閱讀
    基于<b class='flag-5'>RTOS</b>的應用進程中的典型線程

    微軟開源Azure RTOS,并更名為Eclipse ThreadX

    Azure RTOS 是一個帶有 ThreadX 實時操作系統(tǒng)RTOS)的嵌入式開發(fā)套件。ThreadX 是一個普及性很高的小型 RTOS,可為資源受限的設備提供可靠、超快的性能;目
    的頭像 發(fā)表于 12-01 16:17 ?722次閱讀
    微軟開源Azure <b class='flag-5'>RTOS</b>,并更名為Eclipse ThreadX

    什么是實時操作系統(tǒng)(RTOS)

    實時操作系統(tǒng)RTOS)是一種專為實時應用程序設計的操作系統(tǒng)。實時應用程序需要在特定時間內(nèi)做出預測的響應,因此 RTOS 專注于提供對時間約束的強調(diào),以確保
    的頭像 發(fā)表于 11-23 17:14 ?5151次閱讀

    RTOS相比裸機有什么優(yōu)點?RTOS相比裸機更方便嗎?

    RTOS相比裸機有什么優(yōu)點?RTOS相比裸機更方便嗎? RTOS代表實時操作系統(tǒng),專門為需要高可靠性和可預測性的系統(tǒng)設計。相比之下,裸金屬或
    的頭像 發(fā)表于 10-29 16:33 ?1493次閱讀

    汽車領(lǐng)域RTOS有哪些

    在汽車領(lǐng)域,常用的RTOS除了以上介紹的AUTOSAR/OSEK OS和FreeRTOS之外,包括但不限于以下幾種: 1 QNX OS QNX是一種實時操作系統(tǒng)RTOS),具有以下功能特性: 1.
    的頭像 發(fā)表于 10-27 17:10 ?2617次閱讀