日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

uC/OS-II隊列原理 隊列相關函數(shù)介紹

冬至子 ? 來源:硬件工程師技術干貨 ? 作者:硬件工程師技術干 ? 2023-09-11 15:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、uC/OS-II隊列原理

消息隊列是線程間通訊的一種,主要用作數(shù)據(jù)緩沖,用途非常廣泛。一般情況下遵循先進先出原則。先來看隊列結構體:

uC/OS-II使用一個指針數(shù)組實現(xiàn)了消息隊列,數(shù)組中每個元素可以存放一個指針。當然如果不傳輸指針傳輸普通數(shù)據(jù)也是可以的。

這個指針數(shù)組經(jīng)過函數(shù)OSQCreate()處理后變成如下這個樣子。OSQIn、OSQOut都指向起始位置。

這其實是一個環(huán)形隊列結構,現(xiàn)在把上面的圖形掰彎,如下:

工作原理大致是:

當OSQPost()函數(shù)向隊列中放數(shù)據(jù)后,OSQIn移動一個位置。如果OSQIn指針已經(jīng)旋轉到末尾,則重新指向起始位置。OSQIn指向數(shù)據(jù)即將要插入的位置,換句話說它指的地方是“空的”。

OSQPend()函數(shù)從隊列中取出數(shù)據(jù)后OSQOut移動一個位置。如果OSQOut指針已經(jīng)旋轉到末尾,則重新指向起始位置。OSQOut指向最“舊”的數(shù)據(jù), 換句話說它指的地方是“滿的”。

數(shù)據(jù)取放示意圖如下:

2、隊列相關函數(shù)介紹

OSQCreate()

初始化事件結構體,根據(jù)參數(shù)提供的內(nèi)存起始地址以及大小,把這一塊內(nèi)存初始化為環(huán)形隊列。

OSQPost()

此函數(shù)嘗試存入數(shù)據(jù),如果有線程正在等待數(shù)據(jù),則選取最高優(yōu)先級的線程,并把它恢復為運行態(tài)。數(shù)據(jù)直接給了等待線程,沒有進入環(huán)形隊列。

如果沒有線程等待,此函數(shù)把數(shù)據(jù)放入隊列,放入后OSQIn移動一個位置,如果OSQIn已經(jīng)到了OSQEnd位置,重新設置為OSQStart。

如果隊列已經(jīng)滿了,再次調用此函數(shù),直接返回錯誤碼,不會覆蓋隊列中的數(shù)據(jù)。

OSQPend()

此函數(shù)嘗試從隊列取出數(shù)據(jù),如果隊列中有數(shù)據(jù),那么把最舊的數(shù)據(jù)取出來。交給線程即可。如果隊列是空隊列,則掛起當前線程,直至其它線程向隊列發(fā)送數(shù)據(jù)或者線程等待超時。

OSQAccept()

隊列中有數(shù)據(jù)取出來,沒有數(shù)據(jù)也不會掛起線程??捎糜诓樵儭?/p>

OSQFlush()

清空隊列

OSQPostFront()

反向放數(shù)據(jù),把數(shù)據(jù)放到隊列尾部。

OSQQuery()

隊列信息查詢,信息放到結構體中。

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

    關注

    6

    文章

    2236

    瀏覽量

    49060
  • 消息隊列
    +關注

    關注

    0

    文章

    34

    瀏覽量

    3308
  • ucos-ii
    +關注

    關注

    1

    文章

    11

    瀏覽量

    4035
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    uC/OS-II簡介

    信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。任務管理uC/OS-II 中最多可以支持64 個任務,分別對應優(yōu)先級0~63,其中0 為最高優(yōu)先級。63為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務和4個最低
    發(fā)表于 10-08 09:11

    uC/OS-II簡介

    信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。任務管理uC/OS-II 中最多可以支持64 個任務,分別對應優(yōu)先級0~63,其中0 為最高優(yōu)先級。63為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務和4個最低
    發(fā)表于 10-11 09:26

    uC/OS-II簡介

    信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。任務管理uC/OS-II 中最多可以支持64 個任務,分別對應優(yōu)先級0~63,其中0 為最高優(yōu)先級。63為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務和4個最低
    發(fā)表于 10-15 11:03

    uC/OS-II簡介

    信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。任務管理uC/OS-II 中最多可以支持64 個任務,分別對應優(yōu)先級0~63,其中0 為最高優(yōu)先級。63為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務和4個最低
    發(fā)表于 10-20 09:35

    uC/OS-II簡介

    信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。任務管理uC/OS-II 中最多可以支持64 個任務,分別對應優(yōu)先級0~63,其中0 為最高優(yōu)先級。63為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務和4個最低
    發(fā)表于 10-25 09:59

    uC/OS-II簡介

    信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。任務管理uC/OS-II 中最多可以支持64 個任務,分別對應優(yōu)先級0~63,其中0 為最高優(yōu)先級。63為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務和4個最低
    發(fā)表于 10-27 09:29

    如何去解決uC/OS-II中優(yōu)先級翻轉問題?

    uC/OS-II的運行機制是什么?uC/OS-II中的優(yōu)先級翻轉問題有哪些?如何去解決uC/OS-II
    發(fā)表于 04-25 07:07

    uC/OS-II源碼包的下載

    ,如下圖所示。uC/OS-II內(nèi)核結構2、對各部分的進一步解釋:第一部分 (1):與硬件無關的高層的操作系統(tǒng)部分大部分是關于任務的創(chuàng)建、信號量的創(chuàng)建、郵箱和隊列的創(chuàng)建,以...
    發(fā)表于 08-05 08:09

    uC/OS-II移植過程記錄

    怎么去移植uC/OS-II系統(tǒng)呢?移植uC/OS-II系統(tǒng)的過程是怎樣的?
    發(fā)表于 11-01 07:38

    為什么想學uc/OS-II

    請大家先想一下,為什么想學uc/OS-II?在通過例程學習單片機的時候有沒有這樣的疑問,為什么例程是一個個孤立的呢,能否整合在一起?RTOS就是這樣一個多線程運行的好工具,我選取UCOS來實現(xiàn)
    發(fā)表于 02-18 07:16

    基于uc/os-ii 的嵌入式GUI研究與應用

    目前,uc/os-ii 在嵌入式系統(tǒng)中得到了廣泛的應用,但適用于uc/os-ii 的圖形界面卻很少。本文介紹了一種適用于
    發(fā)表于 08-24 08:17 ?21次下載

    uC/OS-II 應用程序基本結構及重要的API介紹

    應用uC/OS-II,自然要為它開發(fā)應用程序,下面論述基于uC/OS-II的應用程序的基本結構以及注意事項。 每一個uC/
    發(fā)表于 10-24 11:28 ?2次下載

    正點原子開拓者FPGA Qsys視頻:uCOS II消息郵箱和消息隊列

    uC/OS-II目標是實現(xiàn)一個基于優(yōu)先級調度的搶占式的實時內(nèi)核,并在這個內(nèi)核之上提供最基本的系統(tǒng)服務,如信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。
    的頭像 發(fā)表于 09-17 07:04 ?2886次閱讀
    正點原子開拓者FPGA Qsys視頻:uCOS <b class='flag-5'>II</b>消息郵箱和消息<b class='flag-5'>隊列</b>

    【嵌入式系統(tǒng)—實時操作系統(tǒng)】uC/OS-II 及其STM32F103移植

    ,如下圖所示。uC/OS-II內(nèi)核結構2、對各部分的進一步解釋:第一部分 (1):與硬件無關的高層的操作系統(tǒng)部分大部分是關于任務的創(chuàng)建、信號量的創(chuàng)建、郵箱和隊列的創(chuàng)建,以...
    發(fā)表于 12-23 19:58 ?5次下載
    【嵌入式系統(tǒng)—實時操作系統(tǒng)】<b class='flag-5'>uC</b>/<b class='flag-5'>OS-II</b> 及其STM32F103移植

    uC/OS-II—郵箱介紹

    uC/OS-II中郵箱是線程(任務)通訊的一種,使用郵箱能夠發(fā)送一個指針,當然也可以發(fā)送指針大小的數(shù)據(jù)。
    的頭像 發(fā)表于 09-11 15:35 ?3021次閱讀
    色达县| 天台县| 宁国市| 泽普县| 大洼县| 达拉特旗| 手游| 偃师市| 青州市| 泰和县| 辽源市| 六枝特区| 新丰县| 眉山市| 贡觉县| 岑巩县| 永寿县| 馆陶县| 承德县| 永安市| 永登县| 德化县| 古丈县| 江山市| 扬中市| 肥城市| 平阴县| 浪卡子县| 随州市| 育儿| 喀什市| 迁西县| 天津市| 西乡县| 弥勒县| 随州市| 丰台区| 大悟县| 南投县| 林口县| 马公市|