衡阳派盒市场营销有限公司

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 11:34 ? 次閱讀

任務(wù)通知簡介

任務(wù)通知在 FreeRTOS 中是一個可選的功能,要使用任務(wù)通知的話就需要將宏configUSE_TASK_NOTIFICATIONS 定義為 1。

FreeRTOS 的每個任務(wù)都有一個 32 位的通知值,任務(wù)控制塊中的成員變量 ulNotifiedValue 就是這個通知值。任務(wù)通知是一個事件,假如某個任務(wù)通知的接收任務(wù)因為等待任務(wù)通知而阻塞的話,向這個接收任務(wù)發(fā)送任務(wù)通知以后就會解除這個任務(wù)的阻塞狀態(tài)。也可以更新接收任務(wù)的任務(wù)通知值,任務(wù)通知可以通過如下方法更新接收任務(wù)的通知值:

● 不覆蓋接收任務(wù)的通知值(如果上次發(fā)送給接收任務(wù)的通知還沒被處理)。

● 覆蓋接收任務(wù)的通知值。

● 更新接收任務(wù)通知值的一個或多個 bit。

● 增加接收任務(wù)的通知值。

合理、靈活的使用上面這些更改任務(wù)通知值的方法可以在一些場合中替代隊列、二值信號量、計數(shù)型信號量和事件標(biāo)志組。使用任務(wù)通知來實現(xiàn)二值信號量功能的時候,解除任務(wù)阻塞的時間比直接使用二值信號量要快 45%(FreeRTOS 官方測試結(jié)果,使用 v8.1.2 版本中的二值信號量,GCC 編譯器,-O2 優(yōu)化的條件下測試的,沒有使能斷言函數(shù) configASSERT()),并且使用的 RAM 更少!

任務(wù)通知的發(fā)送使用函數(shù) xTaskNotify()或者 xTaskNotifyGive()(還有此函數(shù)的中斷版本)來 完 成 , 這個通知值會一直保持著 ,直到接受任務(wù)調(diào)用函數(shù)xTaskNotifyWait() 或 者ulTaskNotifyTake()來獲取這個通知值。假如接收任務(wù)因為等待任務(wù)通知而阻塞的話那么在接收到任務(wù)通知以后就會解除阻塞態(tài)。

任務(wù)通知雖然可以提高速度,并且減少 RAM 的使用,但是任務(wù)通知也是有使用限制的:

● FreeRTOS 的任務(wù)通知只能有一個接收任務(wù),其實大多數(shù)的應(yīng)用都是這種情況。

● 接收任務(wù)可以因為接收任務(wù)通知而進(jìn)入阻塞態(tài),但是發(fā)送任務(wù)不會因為任務(wù)通知發(fā)送失敗而阻塞。

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

    關(guān)注

    5092

    文章

    19178

    瀏覽量

    307691
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62398
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    FreeRTOS中的任務(wù)管理

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

    FreeRTOS任務(wù)通知模擬二值信號量怎么都獲取不成功是怎么回事

    如圖,所示,救助論壇的大神,元老? FreeRTOS 21080511 任務(wù)通知模擬二值信號量.rar (4.02 MB )
    發(fā)表于 06-15 04:32

    任務(wù)通知發(fā)送出問題怎么辦

    大家好。我在STM32cubemx里使用FreeRTOS,開啟定時器3中斷,然后發(fā)送一個任務(wù)通知給TIM3_Task。但是無論是在回調(diào)函數(shù)里使用vTaskNotifyGiveFromISR()這個
    發(fā)表于 06-18 04:35

    FreeRTOS任務(wù)通知相關(guān)資料分享

    FreeRTOS--任務(wù)通知Notification今天發(fā)現(xiàn)了一個奇怪的現(xiàn)象,特意把它記錄下來,防止忘記了。先上圖于是找了所有的任務(wù)句柄,真的是沒有操作掛起了這個
    發(fā)表于 01-21 12:07

    使用FreeRTOS通知功能加速應(yīng)用執(zhí)行

    使用FreeRTOS的直接任務(wù)通知實現(xiàn)更高效的交互,與信號量相比,通知機(jī)制內(nèi)存占用更小,速度可提高45%。架構(gòu)良好的FreeRTOS應(yīng)用程序
    發(fā)表于 04-14 11:19

    FreeRTOS的直接任務(wù)(消息)通知

    ? ? ? ? 之前分享了《FreeRTOS V10.4.0更新了哪些功能?》,今天就來詳細(xì)講述其中的一個知識點:FreeRTOS的直接任務(wù)(消息)通知,這樣做的目的就是減少RAM占用
    的頭像 發(fā)表于 01-07 09:37 ?4678次閱讀

    FreeRTOS —— 9.任務(wù)通知

    9.1本章介紹與范圍已經(jīng)看到,使用FreeRTOS的應(yīng)用程序被構(gòu)造為一組獨立的任務(wù),并且這些任務(wù)很可能必須彼此通信,以便它們可以共同提供有用的系統(tǒng)功能。通過中介對象進(jìn)行通信本書已經(jīng)描述了任務(wù)
    發(fā)表于 12-04 20:21 ?10次下載
    <b class='flag-5'>FreeRTOS</b> —— 9.<b class='flag-5'>任務(wù)</b><b class='flag-5'>通知</b>

    FreeRTOS任務(wù)詳解

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

    FreeRTOS高級篇8---FreeRTOS任務(wù)通知分析

    FreeRTOS版本V8.2.0中推出了全新的功能:任務(wù)通知。在大多數(shù)情況下,任務(wù)通知可以替代二進(jìn)制信號量、計數(shù)信號量、事件組,可以替代長
    發(fā)表于 01-26 17:36 ?10次下載
    <b class='flag-5'>FreeRTOS</b>高級篇8---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b><b class='flag-5'>通知</b>分析

    FreeRTOS系列第14篇---FreeRTOS任務(wù)通知

    每個RTOS任務(wù)都有一個32位的通知值,任務(wù)創(chuàng)建時,這個值被初始化為0。RTOS任務(wù)通知相當(dāng)于直接向任務(wù)
    發(fā)表于 01-26 17:49 ?5次下載
    <b class='flag-5'>FreeRTOS</b>系列第14篇---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b><b class='flag-5'>通知</b>

    FreeRTOS任務(wù)通知簡介及實現(xiàn)

    每個系統(tǒng)任務(wù)都會有一個任務(wù)通知。然后每個任務(wù)通知都具有掛起或者未掛起的狀態(tài),以及32位的通知。常
    的頭像 發(fā)表于 12-06 16:24 ?2196次閱讀

    freeRTOS任務(wù)

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

    FreeRTOS任務(wù)通知通用發(fā)送函數(shù)

    發(fā)送任務(wù)通知 任務(wù)通知通用發(fā)送函數(shù) 任務(wù)任務(wù)通知發(fā)
    的頭像 發(fā)表于 07-30 11:43 ?780次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b><b class='flag-5'>通知</b>通用發(fā)送函數(shù)

    使用任務(wù)通知提高RTOS應(yīng)用的效率

    在實時嵌入式系統(tǒng)中,性能和資源效率是決定設(shè)計成敗的關(guān)鍵因素。傳統(tǒng)的實時操作系統(tǒng)(RTOS)提供了如隊列、信號量和事件組機(jī)制,實現(xiàn)任務(wù)之間的同步和通信。FreeRTOS/SAFERTOS還提供一種方法可以使這些過程更快、更輕量化,即任務(wù)
    的頭像 發(fā)表于 12-27 14:54 ?326次閱讀
    百家乐官网网| 沙龙百家乐赌场娱乐网规则 | 百家乐官网注码技术打法| 百家乐直揽经验| 大发真钱娱乐城| 百家乐官网桌布9人| 竞咪百家乐的玩法技巧和规则| 太白县| 乐天堂百家乐官网赌场娱乐网规则| 威尼斯人娱乐网最新地址| 澳门百家乐官网21点| 百家乐桌手机套| 百家乐官网澳门路规则| 百家乐真人娱乐场开户注册| 百家乐官网庄和闲的赌法| 百家乐tt娱乐城| 网络赌场| 百家乐假在哪里| 大发888下载df888| 大众百家乐官网的玩法技巧和规则 | 百家乐官网网站制作| 博彩百家乐字谜总汇| 百家乐官网策略与心得| 赌百家乐澳门| 博e百| 百家乐游戏机的玩法| 百家乐官网打印程序| 百家乐真人秀| 兴安县| 昆明百家乐装修装潢有限公司| 求购百家乐官网程序| 百家乐游戏卡通| 百家乐官网入庄闲概率| 百家乐庄闲排| 澳门百家乐官网技巧皇冠网 | 真人娱乐城源码| 大发888好么| 互博百家乐现金网| 百家乐官网全透明牌靴| 大发888冲值| 百家乐官网官网网站|