精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

FreeRTOS事件標志組介紹

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:嵌入式Linux系統開 ? 2023-07-06 17:22 ? 次閱讀

1、事件位(事件標志)

事件位用來表明某個事件是否發生,事件位通常用作事件標志,比如下面的幾個例子:

● 當收到一條消息并且把這條消息處理掉以后就可以將某個位(標志)置 1,當隊列中沒有消息需要處理的時候就可以將這個位(標志)置 0。

● 當把隊列中的消息通過網絡發送輸出以后就可以將某個位(標志)置 1,當沒有數據需要從網絡發送出去的話就將這個位(標志)置 0。

● 現在需要向網絡中發送一個心跳信息,將某個位(標志)置 1。現在不需要向網絡中發送心跳信息,這個位(標志)置 0。

2、事件組

一個事件組就是一組的事件位,事件組中的事件位通過位編號來訪問,同樣,以上面列出的三個例子為例:

● 事件標志組的 bit0 表示隊列中的消息是否處理掉。

● 事件標志組的 bit1 表示是否有消息需要從網絡中發送出去。

● 事件標志組的 bit2 表示現在是否需要向網絡發送心跳信息。

3、事件標志組和事件位的數據類型

事件標志組的數據類型為 EventGroupHandle_t,當 configUSE_16_BIT_TICKS 為 1 的時候 事件標志組可以存儲 8 個事件位,當 configUSE_16_BIT_TICKS 為 0 的時候事件標志組存儲 24個事件位。

事件標志組中的所有事件位都存儲在一個無符號的 EventBits_t 類型的變量中,EventBits_t 在 event_groups.h 中有如下定義:

typedef

TickType_tEventBits_t;

數據類型 TickType_t 在文件 portmacro.h 中有如下定義:

#if(configUSE_16_BIT_TICKS==1)

typedef

uint16_t

TickType_t;

#defineportMAX_DELAY(TickType_t)0xffff

#else

typedef

uint32_t

TickType_t;

#defineportMAX_DELAY(TickType_t)0xffffffffUL

#defineportTICK_TYPE_IS_ATOMIC1

#endif

可以看出當 configUSE_16_BIT_TICKS 為 0 的時候 TickType_t 是個 32 位的數據類型,因 此 EventBits_t 也是個 32 位的數據類型。EventBits_t 類型的變量可以存儲 24 個事件位,另外的那高 8 位有其他用。事件位 0 存放在這個變量的 bit0 上,變量的 bit1 就是事件位 1,以此類推。

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

    關注

    5072

    文章

    19026

    瀏覽量

    303534
  • 數據
    +關注

    關注

    8

    文章

    6909

    瀏覽量

    88850
  • FreeRTOS
    +關注

    關注

    12

    文章

    483

    瀏覽量

    62019
收藏 人收藏

    評論

    相關推薦

    FreeRTOS介紹與基礎任務創建

    本篇介紹FreeRTOS與基礎任務創建
    的頭像 發表于 09-26 09:00 ?2357次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>介紹</b>與基礎任務創建

    使用STM32CubeMX生成的FreeRTOS系統中,似乎沒有新封裝的事件標志,怎么解決?

    使用STM32CubeMX生成的FreeRTOS系統中,似乎沒有新封裝的事件標志,如果按照原生的FreeRTOS使用事件標志
    發表于 03-22 08:34

    使用FreeRTOS系統事件標志有些收不到是怎么回事?

    教下,使用FreeRTOS的的件標志, 任務貌似有些標志位收不到,是怎么回事啊 ? 比如事件標志
    發表于 04-26 06:53

    轉:freeRTOS事件學習

    像其他RTOS一樣,freeRTOS同樣有對事件標志位的創建和處理,在中斷中可以通過事件傳遞信息給其他的任務,那么如何創建事件呢?要使用創建Event的API,首先必須配置,且包含
    發表于 08-12 18:29

    轉:第18章 FreeRTOS事件標志

    第18章FreeRTOS事件標志 前面的章節我們已經講解了任務管理和時間管理,從本章節開始講解任務間的通信和同步機制。首先講解任務間的通信和同步機制之一,事件標志
    發表于 09-02 12:40

    轉:第26章 FreeRTOS任務事件標志

    本章節為大家講解FreeRTOS事件標志的另一種實現方式----基于任務通知(Task Notifications)的事件標志,這里我們
    發表于 09-08 06:48

    【NUCLEO-F412ZG試用體驗】FreeRTOS_事件標志實現任務和中斷的同步

    使用事件標志可以實現任務和任務之間以及任務和中斷之間的通信或者同步。首先說明,本例程參考了《安富萊_STM32-V5開發板_FreeRTOS教程(V1.0)》,是在上上期報告的基礎上,把按鍵中斷由
    發表于 12-28 21:19

    UCOS3的事件標志

    我理解的事件標志主要功能就是根據同步標志組里面的信號的標志位來執行語句。比如有A,B,C三個信號,當我們有一個任務D需要ABC三個信號都到了之后再去執行任務D.這時候就可以用到任務
    發表于 05-11 14:27

    freertos中斷置位事件標志輸出Error的解決辦法?

    新人求教,在原子里的程序加了置位標志,串口輸出Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,680,但是不影響程序的運行,這個是什么原因
    發表于 06-18 09:00

    【轉載】AT32 FreeRTOS應用筆記

    ........................................83例程介紹 ...................................................... 85FreeRTOS 事件標志
    發表于 08-16 11:56

    怎樣去設置FreeRTOS事件標志的事件位呢

    事件標志是什么意思呢?怎樣去設置FreeRTOS事件標志的事件位呢?
    發表于 02-28 06:44

    freeRTOS中的消息郵箱

    freeRTOS中的消息郵箱使用是比較靈活的,它可以實現二值信號量、計數信號量、事件標志、消息隊列等通知方式。
    的頭像 發表于 02-10 11:05 ?1526次閱讀
    <b class='flag-5'>freeRTOS</b>中的消息郵箱

    freeRTOS用于任務之間同步的手段事件標志

    freeRTOS中還有一種可以用于任務之間同步的手段 — 事件標志
    的頭像 發表于 02-10 11:10 ?1511次閱讀

    FreeRTOS的事件標志

    之前介紹了使用信號量來完成同步,但是使用信號量來同步的話,任務只能與單個的事件或任務進行同步。有時候某個任務可能會需要與多個事件或任務進行同步,此時信號量就無能為力了。FreeRTOS 提供了一個可選的解決方法,那就是事件標志
    的頭像 發表于 02-10 15:58 ?1083次閱讀

    FreeRTOS創建事件標志

    創建事件標志 3、設置事件位 4、獲取事件標志值 5、等待指定的事件位 某個任務可能需要與多個事件進行同步,那么這個任務就需要等待并判斷多個事件位(標 志),使用函數
    的頭像 發表于 07-06 17:23 ?512次閱讀
    <b class='flag-5'>FreeRTOS</b>創建事件<b class='flag-5'>標志</b><b class='flag-5'>組</b>