UCOS II 學習心得

2021-05-27 20:15:54 字數 886 閱讀 6331

1.任務優先順序

osrdygrp與osrdytbl類似於乙個二維陣列,可大概表達為prio[osrdygrp][osrdytbl]

要知道哪個任務就緒,只要知道osrdygrp,osrdytbl的值,然後從表中找出就可以了

驗證:例如優先順序為22的任務,轉為二進位制為00 010 110 ,轉為x=2,y=6,查表得為22。

osrdygrp:ucos ii總共有64個任務,其中系統占用8個,可用的為56個,優先順序最低的是os_lowest_priom,最高的是0,將64個任務分為8組,每組8個任務,osrdygrp為8位,每一位代表這個組中是否有任務正在使用,如果有,該為置1,沒用為0,通過osrdygrp這個資料就可以知道系統中有哪些任務被呼叫,這些被呼叫的任務是在8個組中的哪乙個。

osrdytbl:知道8個組哪些組有任務就緒後,接下來就是尋找這個組中哪些任務就緒了,就用到osrdytbl,該組任務中哪些任務就緒,就在該位上置1,未就緒的任務為0。通過

osrdygrp,osrdytbl的組合,就可以知道哪些任務進入就緒了

上圖的方法是快速的使某個任務進入就緒態。

找出進入就緒態的優先順序最高的任務

osunmaptbl表:

int8u  const  osunmaptbl[256] = ;

一種快速的演算法是,例如osrdygrp 為01101000,從右往左算012345678,第乙個1在第4位,即3,則y=3

假設osrdytbl[3]的值為11100100,用上面的方法得第乙個1在第3位即2,則x=2,

prio=y<<3+x=26。就可以得到優先順序最高的就緒任務了

uCOS ii 學習心得及體會

1 首先發布 任哲的 嵌入式實時作業系統ucos ii原理及應用 這本書非常適合初學者學習 ucos ii 2 請問 空閒任務和統計任務是否建立任務控制塊呢?任務塊鍊錶中是否存在空閒任務和統計任務的任務控制塊呢?如果沒有的話,作業系統如何排程呢?標準答案 在ucos ii核心中,呼叫osinit 函...

學習心得 python學習心得

自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...

學習心得 我的學習心得

我是乙個已經步入中年的70後,離開校園已經20年了,因為當年的政策因素而未能圓我的大學夢,在20年的工作過程中總是因為缺少一張大學文憑而失去了很多機會,曾經也考慮過自考,但是乙個人去面對的時候總感覺心有餘而力不足。2018年3月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...