就緒表由兩部分組成:就緒優先順序位對映表、就緒任務列表。
記錄哪個優先順序下有任務就緒。
ucosiii中任務優先級數由巨集os_cfg_prio_max
來配置,ucosiii中數值越小,優先順序越高,最低可用優先順序就是os_cfg_prio_max-1
。
核心函式:
os_priogethighest()
用於找到就緒了的最高優先順序的任務。
os_prioinsert()
置位就緒優先順序位對映表中對應的優先順序的位。
os_prinremove()
清零就緒優先順序位對映表中對應的優先順序的位。
通過上一步我們已經知道了哪個優先順序的任務已經就緒了,但是ucosiii支援時間片輪轉排程,同乙個優先順序下可以有多個任務,因此我們還需要在確定是優先順序下的哪個任務就緒了。
記錄每乙個優先順序下所有就緒任務。
ucosiii中就緒表由2部分組成:
優先順序位對映表ospriotbl
:用來記錄哪個優先順序下有任務就緒。
就緒任務列表osrdylist
:用來記錄每乙個優先順序下所有就緒的任務。
struct os_rdy_list ;
同一優先順序下如果有多個任務的話最先執行的永遠是headptr所指向的任務! uc os iii學習筆記 任務管理
記了幾篇筆記後發現,基本就是在抄書,而且由於本人繪圖能力有限,也無法貼上圖表去說明,可能導致後來的讀者完全摸不清頭腦,所以再次宣告,本人只是在給自己做知識點筆記,相關圖示和介紹請閱讀書籍 嵌入式實時作業系統us os iii void ostaskcreate os tcb p tcb,cpu ch...
ucos II 任務就緒表學習筆記
就緒表中有兩個變數 osrdygrp和 osrdytbl.這兩個變數的對應關係是 osrdytbl n 中任何一位是1時,osrdygrp 的第n 位 是1。相當於osrdygrp 是osrdytbl的索引。具體的對應關係如下圖 陣列osrdytbl 8 按位來算的話正好是64個位 64個優先順序。...
Ucosiii學習筆記(一)建立任務
os.h 檔案 為ucosiii的主標頭檔案,其包含以下標頭檔案 os cfg.h cpu.h cpu core.h lib bef.h os type.h os cpu.h 2.建立應用程式任務,必要的操作是為任務分配任務控制模組 os tcb 宣告任務堆疊,宣告任務函式的原型。並在主函式中建立開...