uc/os-iii學習筆記---同時等待多個核心物件
同時等待多個核心物件
前面我們講過都是等待單個核心物件,包括:訊號量、互斥訊號量、訊息佇列和事件標誌組。在UCOS–III中允許任務同時等待多個訊號量和多個訊息佇列,也就是說,UCOS–III不支援同時等待多個事件標誌組或互斥訊號量。
一個任務可以等待任意數量的訊號量和訊息佇列,第一個訊號量或訊息佇列的釋出會導致該任務進入就緒態。
- 一個任務可以呼叫函式
OSPendMulti()
函式來等待多個物件,並且可以根據需要指定一個等待超時值,函式OSPendMulti()
,舉個例子
-
OSPendMulti((OS_PEND_DATA* )pend_multi_tbl,//需定義的陣列,陣列的例子在此函式下面
(OS_OBJ_QTY )CORE_OBJ_NUM, //核心物件數量
(OS_TICK )0, //0就是一直等待下去
(OS_OPT )OS_OPT_PEND_BLOCKING,//物件未傳送時任務掛起等待,OS_OPT_NON_PEND_BLOCKING就是物件未傳送直接返回
(OS_ERR* )&err); //同樣是返回的錯誤資訊
OS_PEND_DATA pend_multi_tbl[CORE_OBJ_NUM];//定義一個陣列,陣列大小推薦使用巨集定義方式定義
pend_multi_tbl[0].PendObjPtr=(OS_PEND_OBJ*)&Test_Sem1;//等待訊號Test_Sem1
pend_multi_tbl[1].PendObjPtr=(OS_PEND_OBJ*)&Test_Sem2;//等待訊號Test_Sem2
pend_multi_tbl[2].PendObjPtr=(OS_PEND_OBJ*)&Test_Q;//等待訊息Test-Q
相關文章
- JVM核心學習筆記JVM筆記
- Promise 物件學習筆記Promise物件筆記
- Android 學習筆記核心篇Android筆記
- 學習筆記——物件方法整理筆記物件
- 同餘最短路學習筆記筆記
- webpack 學習筆記:核心概念(上)Web筆記
- webpack 學習筆記:核心概念(下)Web筆記
- elasticsearch學習筆記一:核心概念Elasticsearch筆記
- oracle學習筆記(十四) 資料庫物件 索引 檢視 序列 同義詞Oracle筆記資料庫物件索引
- Python學習筆記 - 多程式Python筆記
- 多項式學習筆記筆記
- 【python 物件導向】 python物件學習筆記《1》Python物件筆記
- C++ 一些學習筆記(十二)類和物件-多型C++筆記物件多型
- JAVA核心技術學習筆記--反射Java筆記反射
- 一個表單同時提交多條記錄
- 【Linux】核心學習筆記(一)——程序管理Linux筆記
- Spring Boot學習筆記:Spring Boot核心配置Spring Boot筆記
- 數論學習筆記 (5):同餘與逆元筆記
- Python 3 學習筆記之——物件導向Python筆記物件
- 學習筆記——瀏覽器物件模型(Window)筆記瀏覽器物件模型
- MogDB/openGauss學習筆記-獲取物件DDL筆記物件
- Flutter學習筆記(8)--Dart物件導向Flutter筆記Dart物件
- Python學習筆記|Python之物件導向Python筆記物件
- js高階 物件導向 學習筆記JS物件筆記
- Python學習筆記 - 多執行緒Python筆記執行緒
- Java 多執行緒學習筆記Java執行緒筆記
- python 同時迭代多個序列Python
- Linux核心學習筆記(5)– 程式排程概述Linux筆記
- PHP 手冊 (類與物件) 學習筆記七:物件繼承PHP物件筆記繼承
- ES學習筆記(11)--ES6中物件筆記物件
- ES6學習筆記(三)【函式,物件】筆記函式物件
- JavaScript中的物件學習筆記(屬性操作)JavaScript物件筆記
- JavaScript中的物件學習筆記(概述和建立)JavaScript物件筆記
- Python學習筆記5——一切皆物件Python筆記物件
- JS語言精粹學習筆記--物件字面量JS筆記物件
- 強化學習-學習筆記13 | 多智慧體強化學習強化學習筆記智慧體
- Java多執行緒學習筆記(自用)Java執行緒筆記
- MySQL定時器EVENT學習筆記MySql定時器筆記
- freeRTOS核心學習筆記(1)-程式設計標準筆記程式設計