精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

消息隊列在RTOS的應用

企業動態
RTOS是一個管理CPU的軟件, 即微處理單元(MPU) , 還可能管理高效的DSP。 大多數 RTOS 內核是用 c 語言編寫的, 同時需要用匯編語言編寫一小部分代碼來適應不同的 CPU 架構。

傳說互聯網應用有兩大利器,一個是緩存,另一個就是消息隊列。 一直相對消息隊列做一下梳理,希望早日另有成文。 一葉知秋,實際上消息隊列在嵌入式系統中同樣有著廣泛的應用。 近來致力于IoT和智能硬件,現學習一下消息隊列在RTOS中的應用場景。

RTOS是一個管理CPU的軟件, 即微處理單元(MPU) , 還可能管理高效的DSP。 大多數 RTOS 內核是用 c 語言編寫的, 同時需要用匯編語言編寫一小部分代碼來適應不同的 CPU 架構。一個 RTOS 內核為開發者提供了許多有用的服務, 如多任務處理、中斷管理、通過消息隊列、信號量、資源管理、時間管理、內存分區管理等等。

[[227344]]

應用程序或者最終地產品基本上會劃分為多個任務, 每個任務負責應用程序的一部分。 一個任務就是一個簡單的程序, 它有自己的 CPU使用時間。 根據任務的重要性, 每個任務都被賦予了優先級。

RTOS中的消息隊列

圖1 消息隊列是用于將內容傳遞給任務的內核對象

如圖1所示, 消息隊列是一個核心對象(即數據結構) , 通過這個對象, 消息從中斷服務例程(ISR)或任務發送到另一個任務。 應用程序可以有任意數量的消息隊列, 每一個都有自己的目的和用途。 例如, 消息隊列可以用來將從通信接口 ISR 接收到的數據包傳遞給一個任務, 而 ISR 則負責處理數據包。 另一個隊列可以用來將內容傳遞給顯示任務, 該任務將負責正確地更新顯示的內容。

消息通常是指向包含實際消息存儲區域的void指針。 這些指針可以指向任何東西, 甚至可以指向接收任務執行的函數。 因此, 它的實際含義取決于應用程序。 每個消息隊列都可以根據它將保存的存儲量進行配置。 消息隊列可以配置為保存單個消息或者 n 個消息。 隊列的大小取決于應用程序以及消費者的處理速度。

如果一個任務等待一條消息, 并且隊列中沒有消息, 則該任務將被掛起, 直到有消息發送到隊列中。 等待任務不消耗 CPU 時間, RTOS 可以運行其他任務。 如圖1所示, 掛起的任務可以指定超時。 如果在指定時間內未收到消息, 則當該任務成為***優先任務時, 將允許任務恢復執行(即 unblock)。 當任務執行時, 基本上會被告知它恢復的原因是因為超時。

消息隊列通常作為先入先出(FIFO)實現, 這意味著收到的***個消息將是從隊列中提取的***個消息。 然而, 有些內核允許發送被認為比其他內核更重要的消息, 從而排在隊列的首位。 換句話說, 在"先入先出"順序中, 使該消息成為任務提取的***條信息。

消息隊列的另一個重要方面是, 消息本身需要保持從發送到處理的時間范圍。 這意味著不能將指針傳遞給棧變量等等。 為了將消息保持在作用域中, 通常會填充一個結構, 并從這些消息池中獲取, 如圖2所示。 

圖2 消息池的存儲區域

發送消息的 ISR 或任務將從池中獲取結構, 填充結構, 并將指針指向隊列的結構。 接收任務將從隊列中提取指針, 處理結構, 完成后將結構返回到池中。 當然, 發送方和接收方都需要使用相同的池, 除非數據結構中的字段指示使用了哪個池。

在 RTOS 中的許多消息隊列實現中, 如隊列已滿, 則發送到隊列的消息將被丟棄。 通常這不是一個問題, 應用程序的邏輯可以從這種情況中恢復。 然而, 如圖3所示, 實現一個發送任務會發送消息的機制是相當容易的:

圖3 如果隊列已滿, 則阻止發送

  • 計數信號的初始化值與隊列可接受的***條目數相對應
  • 發送任務在允許將消息發送到隊列之前檢查信號量。 如果信號量值為零, 則發送方等待。
  • 如果值為非零, 則信號量減少, 發送方將消息發送到隊列中
  • 消息的接收方像往常一樣將消息隊列分隔開來
  • 當收到消息時, 接收這將指針從隊列中取出并向信號量發出信號, 表示隊列中的條目已被釋放

如圖所示, 這個機制只適用于兩個任務, 因為 ISR 不允許在信號量上分配信號。

消息隊列的典型用法

圖4顯示了消息隊列的不同用法:

1-4. 消息隊列通常用于從 ISR 發送消息或將任務發送到另一個任務, 如前面所討論的那樣

5.但是, 如果消息符合指針的大小, 則不必發送實際消息及分配存儲區域。 例如, 如果一個32位指針, 那么可以將模擬轉換器(ADC)從一個12位 ADC 讀取到一個指針, 并通過消息隊列發送,只要接收這知道將值返回整數即可, 這是完全合法的

6-7 一個任務如果知道這些消息將不會發送給它的,可以使用超時機制在一定的時間內延遲自己。 在這種情況下, 一個能夠保存單個條目的隊列就足夠了。 事實上, 如果另一個任務或 ISR 發送消息, 那么延遲將被終止, 這可能也是想要實現的行為。

8 消息隊列可以作為一個信號量來簡單地向事件發生的任務發出信號。 在這種情況下, 信息可以是任何東西。 隊列的大小取決于應用程序需要緩沖多少信號。

9-10 消息隊列也可以用作二進制信號量或用于資源共享的計數信號量。 對于二進制信號量, 隊列將包含單個消息, 并在隊列中放置消息(任何值)。 為了訪問資源, 可以在隊列上分配一個任務。 如果隊列中有消息, 則該任務將獲得對資源的訪問。 一旦使用了資源, 隊列就會被發布, 從而根據需要放棄資源, 供其他任務使用。 同樣的機制也適用于使用 n 個資源實現計數信號, 隊列將預先填入n個虛擬消息。

11.消息實際上可以用來模擬事件標志, 其中32位指針大小的變量中,每一位可以代表一個事件

12.消息隊列可以用來實現棧結構,這基本上是 LIFO 機制的另一個用途。

總而言之,消息隊列有許多不同方式的使用場景。 事實上, 通過消息隊列,可以編寫相當復雜的應用程序。 使用消息隊列可以減少代碼的大小, 可以被模擬(信號、時間延遲和事件標志)許多其他的服務。

【本文來自51CTO專欄作者“老曹”的原創文章,作者微信公眾號:喔家ArchiSelf,id:wrieless-com】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2010-04-21 14:49:13

Unix消息隊列

2010-04-21 12:12:56

Unix 消息隊列

2017-10-11 15:08:28

消息隊列常見

2024-03-29 08:33:10

應用場景存儲搜索

2024-05-29 14:34:07

2024-05-16 08:10:17

RabbitMQ軟件通信機制

2021-03-11 06:01:41

Linux消息隊列

2018-03-29 08:38:10

2025-01-02 09:23:05

2023-12-18 08:36:39

消息隊列微服務開發

2022-12-13 09:19:26

分布式消息隊列

2024-05-10 09:36:36

架構消息隊列

2023-12-30 13:47:48

Redis消息隊列機制

2019-07-19 07:56:13

消息隊列消息代理消息中間件

2012-09-24 11:48:05

IBMdw

2010-04-13 17:00:43

Unix消息隊列

2009-11-09 11:15:06

WCF消息隊列

2021-02-19 09:19:11

消息隊列場景

2025-04-09 08:20:00

RocketMQ消息隊列開發

2009-12-07 09:23:05

點贊
收藏

51CTO技術棧公眾號

欧美激情网址| 日本色护士高潮视频在线观看| 日日夜夜免费精品视频| 中文字幕亚洲天堂| 伊人av在线播放| 午夜影院在线播放| 国产精品电影一区二区| 国产精品初高中精品久久| 国产高清中文字幕| 亚洲第一偷拍| 日韩精品视频免费专区在线播放 | 99青草视频在线播放视| 国内精品第一页| 欧美一区二区色| 中文字幕在线观看2018| 青青久久av| 日韩欧美中文一区| 99热手机在线| 91九色porn在线资源| 国产精品国产三级国产aⅴ原创| 精品久久久久久一区二区里番| 波多野结衣日韩| 很黄很黄激情成人| 日韩在线观看免费av| 成年人网站免费看| 成人福利一区| 777xxx欧美| 五月天婷婷激情视频| 好看的中文字幕在线播放| 国产精品对白交换视频| 久久国产精品99久久久久久丝袜 | 精品在线视频观看| 久久一区二区三区电影| 精品视频在线播放免| 麻豆免费在线观看视频| 日本一区二区中文字幕| 色噜噜久久综合| 水蜜桃色314在线观看| 2024最新电影免费在线观看| 亚洲国产精品传媒在线观看| 蜜桃视频日韩| 婷婷婷国产在线视频| 国产成+人+日韩+欧美+亚洲| 国产精品91在线| 亚洲图片在线视频| 99这里有精品| 91av在线看| 男女视频免费看| 好吊视频一区二区三区四区| 欧美激情按摩在线| 欧美三级小视频| 国产精品大片| 欧美激情在线观看视频| 久久亚洲成人av| 国产精品v日韩精品v欧美精品网站| 久久精品国产一区二区电影| 99热6这里只有精品| av伊人久久| 色黄久久久久久| 婷婷激情四射网| 欧美成人日本| 欧美国产日韩精品| 日本a在线观看| 亚洲在线国产日韩欧美| 日本高清不卡在线| 中文字幕亚洲乱码熟女1区2区| 国产精品乱看| 国产99在线|中文| 一级片在线免费播放| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品18久久久久久首页狼| 国产午夜麻豆影院在线观看| 爽好久久久欧美精品| 国产精品午夜视频| 国产老女人乱淫免费| 国产精品1024| 久久久com| 成人在线视频成人| 国产精品的网站| av一区二区三区免费观看| 福利在线导航136| 日韩欧美精品中文字幕| 国产三级三级看三级| 国产精品一区二区三区av| 精品日韩欧美在线| 精品人妻一区二区三区香蕉| jizzjizz欧美69巨大| 大胆欧美人体视频| 日韩欧美三级视频| 三级久久三级久久| 91色p视频在线| 天天干天天草天天射| 中文字幕精品一区二区三区精品 | 欧美尤物美女在线| 亚洲香蕉伊在人在线观| 人妻少妇被粗大爽9797pw| av亚洲一区| 精品免费99久久| 精品无码在线观看| 国产精品大片| 国产日韩精品在线观看| 高h放荡受浪受bl| 国产精品久久久久一区二区三区共| 国产高清不卡无码视频| 香蕉视频亚洲一级| 欧美不卡123| 免费看91的网站| 夜夜爽av福利精品导航| 国产欧美在线视频| 青青九九免费视频在线| 亚洲免费在线播放| 男人的天堂日韩| 操欧美女人视频| 日韩亚洲欧美中文高清在线| 五月婷婷开心网| 国产一区二区在线影院| 欧洲精品在线一区| 国产高清自产拍av在线| 欧美一区二区三区在线观看视频| 中文字幕网站在线观看| 亚洲美女网站| **亚洲第一综合导航网站| 成a人片在线观看www视频| 亚洲自拍偷拍av| 福利片一区二区三区| 欧美美女在线观看| 97在线视频国产| www.日韩在线观看| 综合久久一区二区三区| 免费国产成人av| 久久综合社区| 欧美激情亚洲一区| www夜片内射视频日韩精品成人| 国产日韩一级二级三级| 免费黄色福利视频| 精品三级av在线导航| 久久99热这里只有精品国产| 911美女片黄在线观看游戏| 国产日韩欧美精品综合| 日韩欧美精品在线观看视频| 欧美丝袜美腿| 97在线视频精品| 五月婷婷免费视频| 亚洲18女电影在线观看| xxxwww国产| 亚洲精品在线二区| 久久久久久一区| 色在线免费观看| 亚洲精品自在久久| 九九九在线观看| 久久久亚洲午夜电影| 免费无遮挡无码永久视频| 欧美三级电影在线| 欧美野外猛男的大粗鳮| 欧美女同网站| 日本高清无吗v一区| 日本xxxxxxxxx18| 日本欧美一区二区三区乱码| 日韩黄色影视| 日本成人一区二区| 久久资源免费视频| www.久久久久久久久久| 亚洲成人av中文| 黄色工厂在线观看| 日韩不卡在线观看日韩不卡视频| 日韩在线导航| 电影91久久久| 欧美激情videos| 欧美视频综合| 欧美视频一二三区| 紧身裙女教师波多野结衣| 国产麻豆精品在线观看| av网站大全免费| 国产精品欧美日韩一区| 国产一区视频在线| 新版中文在线官网| 日韩电视剧在线观看免费网站| 亚洲黄色免费观看| 中文字幕人成不卡一区| 国产xxx在线观看| 母乳一区在线观看| 伊人久久青草| 成人午夜大片| 国产精品免费视频久久久| 成人福利在线观看视频| 日韩成人在线视频| 18国产免费视频| 亚洲在线视频网站| b站大片免费直播| 激情丁香综合五月| 老太脱裤子让老头玩xxxxx| 国产免费播放一区二区| 成人夜晚看av| 成人福利视频| 欧美精品免费在线观看| 国产在线观看免费| 日韩欧美激情四射| 欧美特级黄色片| 一区二区三区免费| 免费黄在线观看| 成人综合婷婷国产精品久久免费| www.99在线| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧洲精品码一区二区三区免费看| 伊人久久影院| 国产精品美女午夜av| 超级碰碰不卡在线视频| 日韩在线观看免费av| 四虎精品在永久在线观看 | 亚洲国产一区二区视频| 欧美激情久久久久久久| 成人av网站免费| 国产一级免费大片| 日韩—二三区免费观看av| 97视频久久久| 一本一道久久a久久精品蜜桃| 蜜桃av噜噜一区二区三| 一区二区三区国产好| 国产精品视频不卡| 欧美国产大片| 国内伊人久久久久久网站视频 | 国产精品久久久久久久久久久不卡| 色呦呦在线看| 久久综合免费视频影院| eeuss影院www在线播放| 亚洲精品电影网| 亚洲春色一区二区三区| 这里只有精品视频在线观看| 波多野结衣理论片| 在线中文字幕不卡| 国产又大又黄视频| 婷婷久久综合九色综合伊人色| caoporn91| 自拍偷拍亚洲激情| 最新日韩免费视频| 国产精品热久久久久夜色精品三区| 黄色工厂在线观看| 久久综合久久综合久久综合| 中出视频在线观看| www..com久久爱| 男人网站在线观看| 成人午夜视频在线| 午夜免费福利影院| 不卡视频在线观看| 性囗交免费视频观看| 成人免费观看视频| 麻豆精品国产传媒av| www.在线欧美| 国产在线观看无码免费视频| 99久久婷婷国产| 国产精品久久久免费观看| 99精品桃花视频在线观看| 午夜一区二区三区免费| 26uuu国产在线精品一区二区| 搡老熟女老女人一区二区| 26uuu亚洲| 老司机福利在线观看| 亚洲欧洲日韩综合一区二区| 777777国产7777777| 亚洲免费在线播放| 国产精品白浆一区二小说| 亚洲成av人**亚洲成av**| 中日韩精品视频在线观看| 欧美特黄级在线| 久草视频在线免费| 欧美日韩精品电影| 99热这里只有精品1| 精品国产99国产精品| 五月婷婷在线观看视频| 国产亚洲视频在线| 免费成人黄色| 欧美极度另类性三渗透| 性孕妇free特大另类| 国产成人免费av电影| 六九午夜精品视频| 成人黄色在线免费观看| 神马久久影院| 色呦呦网站入口| 亚洲午夜黄色| 丰满少妇在线观看| 国产一区二区在线电影| 99久久人妻精品免费二区| 日本一区二区三区在线观看| 看片网站在线观看| 欧美日韩中国免费专区在线看| 在线观看免费高清视频| 日韩美女一区二区三区| 麻豆导航在线观看| 久久九九热免费视频| 手机在线观看av网站| 国产欧美一区二区三区四区| av日韩精品| 亚洲高清123| 激情欧美丁香| 波多结衣在线观看| 成人污视频在线观看| 日本污视频网站| 亚洲福利一二三区| 又色又爽又黄无遮挡的免费视频| 欧美精品一区视频| 幼a在线观看| 97在线视频免费| 视频二区欧美| 视频在线99re| 日韩一级网站| 超碰中文字幕在线观看| 国产亚洲精品久| 国产成年人免费视频| 7777精品伊人久久久大香线蕉的| 五月婷婷伊人网| 欧美日韩国产成人高清视频| 色999韩欧美国产综合俺来也| 官网99热精品| 亚洲影视一区| 亚洲国产高清av| www久久久久| 日本午夜小视频| 91精品久久久久久久91蜜桃| 成人精品一区二区三区免费| 8050国产精品久久久久久| 试看120秒一区二区三区| 中文字幕色一区二区| 日韩在线a电影| 一区二区三区少妇| 亚洲综合丝袜美腿| 国产男男gay体育生白袜| 一本大道久久加勒比香蕉| 色在线免费观看| 久草一区二区| 亚洲精品色图| 在线观看国产三级| 亚洲网友自拍偷拍| 精品乱子伦一区二区| 久久视频在线直播| 国产亚洲精品精品国产亚洲综合| 区一区二区三区中文字幕| 国产欧美一级| 玖草视频在线观看| 精品国产福利在线| 蜜桃av噜噜一区二区三区麻豆| 另类天堂视频在线观看| 国产精品777777在线播放| 亚洲综合网中心| 久久99久国产精品黄毛片色诱| 欧洲性xxxx| 精品视频一区 二区 三区| av网站在线播放| 成人高h视频在线| 国产精品久久久久久久久久10秀 | 丝袜情趣国产精品| 久久精品xxxxx| 综合色婷婷一区二区亚洲欧美国产| 久久草av在线| 国产高清视频免费在线观看| 欧美精品aⅴ在线视频| 麻豆网站在线| a级国产乱理论片在线观看99| 欧美三级网页| 小毛片在线观看| 日韩欧美一区二区三区| 国产粉嫩一区二区三区在线观看 | 91精品入口| 欧美视频在线免费播放| 99热99精品| 亚洲图片欧美日韩| 北条麻妃在线一区二区| 欧洲一区在线| 伊人成色综合网| 欧美国产日韩亚洲一区| 一级特黄特色的免费大片视频| 欧美xxxx做受欧美.88| 激情小说亚洲色图| 男人舔女人下面高潮视频| 国产精品久久久久影院亚瑟| 亚洲成人777777| 日本高清不卡的在线| 91精品国产乱码久久久久久| 国产精品亚洲一区二区无码| 日韩欧美一区视频| 快射av在线播放一区| 国产精品久久久久久久久久直播| 在线亚洲伦理| 亚洲熟女毛茸茸| 亚洲成人网av| ww久久综合久中文字幕| 欧美一级特黄aaaaaa在线看片| 97超碰欧美中文字幕| 91亚洲国产成人久久精品麻豆| 欧美激情精品久久久久久免费印度| 久久av网址| 又大又长粗又爽又黄少妇视频| 色综合欧美在线视频区| 黄色国产网站在线播放| 久久影院理伦片| 国产精品一区二区视频| 免费av中文字幕| 国内成人精品一区| 日韩国产专区| 国产麻豆天美果冻无码视频 | 日本韩国精品一区二区|