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

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

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

FreeRTOS中的空閑任務(wù)是什么

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-30 10:55 ? 次閱讀

空閑任務(wù)是 FreeRTOS 必不可少的一個任務(wù),其他 RTOS 類系統(tǒng)也有空閑任務(wù),比如 uC/OS。看名字就知道,空閑任務(wù)是處理器空閑的時候去運(yùn)行的一個任務(wù),當(dāng)系統(tǒng)中沒有其他就緒任務(wù)的時候空閑任務(wù)就會開始運(yùn)行,空閑任務(wù)最重要的作用就是讓處理器在無事可做的時候找點(diǎn)事做,防止處理器無聊,因此,空閑任務(wù)的優(yōu)先級肯定是最低的。當(dāng)然了,實(shí)際上肯定不會這么浪費(fèi)寶貴的處理器資源,F(xiàn)reeRTOS 空閑任務(wù)中也會執(zhí)行一些其他的處理。

空閑任務(wù)詳解

1、空閑任務(wù)簡介

當(dāng) FreeRTOS 的調(diào)度器啟動以后就會自動的創(chuàng)建一個空閑任務(wù),這樣就可以確保至少有一任務(wù)可以運(yùn)行。但是這個空閑任務(wù)使用最低優(yōu)先級,如果應(yīng)用中有其他高優(yōu)先級任務(wù)處于就緒態(tài)的話這個空閑任務(wù)就不會跟高優(yōu)先級的任務(wù)搶占 CPU 資源??臻e任務(wù)還有另外一個重要的職責(zé),如果某個任務(wù)要調(diào)用函數(shù) vTaskDelete()刪除自身,那么這個任務(wù)的任務(wù)控制塊 TCB 和任務(wù)堆棧等這些由 FreeRTOS 系統(tǒng)自動分配的內(nèi)存需要在空閑任務(wù)中釋放掉,如果刪除的是別的任務(wù)那么相應(yīng)的內(nèi)存就會被直接釋放掉,不需要在空閑任務(wù)中釋放。因此,一定要給空閑任務(wù)執(zhí)行的機(jī)會!除此以外空閑任務(wù)就沒有什么特別重要的功能了,所以可以根據(jù)實(shí)際情況減少空閑任務(wù)使用 CPU 的時間(比如,當(dāng) CPU 運(yùn)行空閑任務(wù)的時候使處理器進(jìn)入低功耗模式)。

用戶可以創(chuàng)建與空閑任務(wù)優(yōu)先級相同的應(yīng)用任務(wù),當(dāng)宏 configIDLE_SHOULD_YIELD 為 1的話應(yīng)用任務(wù)就可以使用空閑任務(wù)的時間片,也就是說空閑任務(wù)會讓出時間片給同優(yōu)先級的應(yīng)用任務(wù)。這種機(jī)制要求FreeRTOS 使用搶占式內(nèi)核。

2、空閑任務(wù)的創(chuàng)建

當(dāng)調(diào)用函數(shù) vTaskStartScheduler()啟動任務(wù)調(diào)度器的時候此函數(shù)就會自動創(chuàng)建空閑任務(wù)。

3、空閑任務(wù)函數(shù)

空閑任務(wù)的任務(wù)函數(shù)為 prvIdleTask(),但是實(shí)際上是找不到這個函數(shù)的,因?yàn)樗峭ㄟ^宏定義來實(shí)現(xiàn)的,在文件 portmacro.h 中有如下宏定義:

#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )

其中 portTASK_FUNCTION()在文件 tasks.c 中有定義,它就是空閑任務(wù)的任務(wù)函數(shù)。

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

    關(guān)注

    5059

    文章

    18974

    瀏覽量

    302062
  • RTOS
    +關(guān)注

    關(guān)注

    21

    文章

    809

    瀏覽量

    119362
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61918
收藏 人收藏

    評論

    相關(guān)推薦

    FreeRTOS介紹與基礎(chǔ)任務(wù)創(chuàng)建

    本篇介紹FreeRTOS與基礎(chǔ)任務(wù)創(chuàng)建
    的頭像 發(fā)表于 09-26 09:00 ?2314次閱讀
    <b class='flag-5'>FreeRTOS</b>介紹與基礎(chǔ)<b class='flag-5'>任務(wù)</b>創(chuàng)建

    FreeRTOS任務(wù)管理

    任務(wù)FreeRTOS 中最基本的調(diào)度單元,它是一段可執(zhí)行的代碼,可以獨(dú)立運(yùn)行。FreeRTOS 任務(wù)是基于優(yōu)先級的搶占式調(diào)度,優(yōu)先級
    的頭像 發(fā)表于 11-27 17:03 ?922次閱讀

    轉(zhuǎn):第10章 FreeRTOS任務(wù)管理

    10.8FreeRTOS任務(wù)刪除10.9FreeRTOS任務(wù)掛起10.10FreeRTOS任務(wù)
    發(fā)表于 08-23 09:54

    Zynq中使用FreeRTOS空閑鉤子函數(shù)時在SDK的設(shè)置

    本文介紹zynq中使用FreeRTOS空閑鉤子函數(shù)時在SDK的設(shè)置和一些說明
    發(fā)表于 03-09 14:33 ?2546次閱讀
    Zynq中使用<b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>空閑</b>鉤子函數(shù)時在SDK<b class='flag-5'>中</b>的設(shè)置

    FreeRTOS任務(wù)如何創(chuàng)建和刪除?

    FreeRTOS移植到Cortex-M3硬件平臺的文章,我們已經(jīng)見過任務(wù)創(chuàng)建API,但那篇文章的重點(diǎn)在于如何移植FreeRTOS,本文將重點(diǎn)放在
    的頭像 發(fā)表于 03-11 18:08 ?2885次閱讀

    (一)FreeRTOS學(xué)習(xí)之FreeRTOS任務(wù)基礎(chǔ)知識

    FreeRTOS學(xué)習(xí)之FreeRTOS任務(wù)基礎(chǔ)知識轉(zhuǎn)行小白一枚,通過博客記錄自我學(xué)習(xí),望更多博友多多指點(diǎn),感激不盡!RTOS系統(tǒng)的核心就是任務(wù)管理,學(xué)習(xí)RTOS系統(tǒng)主要是為了使用RTO
    發(fā)表于 12-23 19:57 ?3次下載
    (一)<b class='flag-5'>FreeRTOS</b>學(xué)習(xí)之<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>基礎(chǔ)知識

    FreeRTOS任務(wù)詳解

    詳細(xì)講解freeRTOS任務(wù)
    發(fā)表于 12-23 20:01 ?11次下載
    <b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>任務(wù)</b>詳解

    FreeRTOS高級篇11---空閑任務(wù)分析

    當(dāng)RTOS調(diào)度器開始工作后,為了保證至少有一個任務(wù)在運(yùn)行,空閑任務(wù)被自動創(chuàng)建,占用最低優(yōu)先級(0優(yōu)先級)。
    發(fā)表于 01-26 17:30 ?0次下載
    <b class='flag-5'>FreeRTOS</b>高級篇11---<b class='flag-5'>空閑</b><b class='flag-5'>任務(wù)</b>分析

    FreeRTOS高級篇2---FreeRTOS任務(wù)創(chuàng)建分析

    FreeRTOS基礎(chǔ)系列《FreeRTOS系列第10篇---FreeRTOS任務(wù)創(chuàng)建和刪除》中介紹了任務(wù)創(chuàng)建API函數(shù)xTaskCreat
    發(fā)表于 01-26 17:42 ?23次下載
    <b class='flag-5'>FreeRTOS</b>高級篇2---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>創(chuàng)建分析

    FreeRTOS系列第10篇---FreeRTOS任務(wù)創(chuàng)建和刪除

    FreeRTOS移植到Cortex-M3硬件平臺的文章,我們已經(jīng)見過任務(wù)創(chuàng)建API,但那篇文章的重點(diǎn)在于如何移植FreeRTOS,本文將重點(diǎn)放在
    發(fā)表于 01-26 17:56 ?13次下載
    <b class='flag-5'>FreeRTOS</b>系列第10篇---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>創(chuàng)建和刪除

    freeRTOS任務(wù)

    freeRTOS系統(tǒng)的任務(wù)切換的具體過程最終都是在pendSV中斷服務(wù)函數(shù)里面完成的。
    的頭像 發(fā)表于 02-10 11:02 ?1507次閱讀
    <b class='flag-5'>freeRTOS</b>的<b class='flag-5'>任務(wù)</b>

    freeRTOS空閑任務(wù)的作用

    在嵌入式實(shí)時操作系統(tǒng),都會有空閑任務(wù)的存在,這個任務(wù)是伴隨著操作系統(tǒng)啟動之后而存在的。正常情況來說,系統(tǒng)不掛掉,空閑
    的頭像 發(fā)表于 07-04 15:16 ?1407次閱讀
    <b class='flag-5'>freeRTOS</b>中<b class='flag-5'>空閑</b><b class='flag-5'>任務(wù)</b>的作用

    FreeRTOS空閑任務(wù)低功耗模式

    1、通用低功耗模式 如果使用通用低功耗模式的話每個滴答定時器中斷都會將處理器從低功耗模式喚醒,以(1)為例,再 T2 時刻處理器從低功耗模式喚醒,但是接下來由于沒有就緒的其他任務(wù)所以處理器又再
    的頭像 發(fā)表于 07-30 11:03 ?1131次閱讀

    FreeRTOS任務(wù)通知簡介

    任務(wù)通知簡介 任務(wù)通知在 FreeRTOS 是一個可選的功能,要使用任務(wù)通知的話就需要將宏configUSE_TASK_NOTIFICAT
    的頭像 發(fā)表于 07-30 11:34 ?710次閱讀

    freertos最多支持多少個任務(wù)

    FreeRTOS是一個輕量級的實(shí)時操作系統(tǒng)(RTOS),其設(shè)計(jì)初衷就是為了提供簡單、可靠且高效的實(shí)時任務(wù)管理。關(guān)于FreeRTOS最多支持多少個任務(wù)的問題,實(shí)際上并沒有一個固定的上限,
    的頭像 發(fā)表于 09-02 14:21 ?616次閱讀