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

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

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

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

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

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

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

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

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

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

周期級(jí)分辨率的RTOS

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

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

體驗(yàn)embOS Ultra微秒級(jí)調(diào)度

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

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

先將Demo例程的任務(wù)做了修改,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); }}

下載代碼至目標(biāo)板上運(yùn)行,通過(guò)SystemView來(lái)觀測(cè)系統(tǒng)的執(zhí)行:

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

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

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

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

再將任務(wù)代碼改成:


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任務(wù)分別延遲50us和100us,LPTask延遲200us,運(yùn)行后觀測(cè)Timeline:

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

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

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


審核編輯 :李倩


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

    關(guān)注

    146

    文章

    16667

    瀏覽量

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

    關(guān)注

    0

    文章

    43

    瀏覽量

    15283
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113676

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RTOS正在縮小與Linux的差距

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

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

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

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

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

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

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

    RTOS的特性和類(lèi)型

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

    RTOS開(kāi)發(fā)最佳實(shí)踐

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

    簡(jiǎn)單認(rèn)識(shí)RTOS實(shí)時(shí)操作系統(tǒng)

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

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

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

    帶你認(rèn)識(shí)實(shí)時(shí)操作系統(tǒng)(rtos)

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

    基于RTOS的應(yīng)用進(jìn)程中的典型線(xiàn)程

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

    全志R128系統(tǒng)RTOS使用說(shuō)明

    重置 CPU,查看輸出。 這里可以看到 M33 核心運(yùn)行頻率 192MHz,DSP 運(yùn)行頻率 400MHz,C906 運(yùn)行頻率 480MHz 系統(tǒng)調(diào)試命令help code"
    發(fā)表于 01-05 10:22

    微軟開(kāi)源Azure RTOS,并更名為Eclipse ThreadX

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

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

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

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

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

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

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