uCOS II學習筆記(一)

2021-07-09 04:46:43 字數 1193 閱讀 6723

對於系統的學習,一直也來是我非常嚮往的地方。但是由於各種原因一直沒有實現,而且進展也非常緩慢。不管怎麼說,自己一定會努力朝這個方面發展,希望以後能在自己的專案中使用os,從而走上更高的台階。

不積跬步,無以至千里。下面將留下我的腳印。。。

1. 在呼叫ucos-ii功能函式時,中斷總應當是開著的。原因是:任務被掛起一段時間,直到掛起時間到,但由於中斷關掉了,時鐘節拍中斷一直得不到服務,所以會使整個應用程式崩潰。

2. 在分配任務優先順序時,建議不使用優先順序為0、1、2、3及os_lowest_prio-3、os_lowest_prio-2、os_lowest_prio-1、os_lowest_prio。原因是:這些優先順序可能後面版本的os會使用,當然也可以使用,但一段不能使用os_lowest_prio優先順序。

3. 函式osschedlock()和osschedunlock()是禁止和允許任務排程。必須成對出現,且可以巢狀到255層。當oslocknesting = 0時,任務的排程重新得到允許。在使用這兩個函式時要非常謹慎,因為它們會影響os對任務的正常管理。在呼叫osschedlock()之後,使用者應用程式不得呼叫可能會使當前任務掛起的系統功能函式。

osflagpend() 

osmboxpend() 

osmutexpend() 

ostimedly() 

osqpend() 

ossempend() 

ostasksuspend(os_prio_self) 

ostimedlyhmsm()

4. 空閒任務中呼叫了ostaskidlehook(),可以在這個函式中編寫任何使用者**,可以寫一些讓cpu進入低功耗模式。ostaskidle()是永遠處於就緒態的,所以不能在ostaskidlehook()中呼叫任何可以使任務掛起的pend函式,ostimedly???()函式及ostasksuspend()函式。

5. 統計任務的使用,必須在初始化時建立的第乙個也是唯一的任務中呼叫統計任務的初始化函式osstatinit()。

void main(void)

void taskstart(void *pdata)

}

6. 時鐘節拍的啟動一定要在多工啟動以後,也就是在呼叫osstart()之後,再開啟時鐘節拍器。換句話說,呼叫osstart()之後應做的第一件事件是初始化定時中斷。

ucosII學習筆記

以前很少接觸過嵌入式作業系統,這次因為要嘗試研究ucosii這個嵌入式作業系統,看看自己能不能盡快的會使用它,查詢了不少資料。ucosii學習筆記。以下是nathan.yu的 ucosii學習筆記 整理的不錯,自己先借鑑。ucosii學習筆記 by nathan.yu ucos ii特性 l 可剝奪...

UCOS II學習筆記

1.標頭檔案的配置 include stm32f10x.h include stm32f10x conf.h include ucos ii.h 2.任務堆疊配置 os stk led0 task stk 64 os stk led1 task stk 64 定義兩個任務的堆疊陣列 3.對硬體的配置...

ucosII學習筆記 1

核心結構學習 一.臨界段 critical sections 的臨界段也稱為臨界區。程式執行到臨界區時,不允許有中斷進入,因此在進入臨界區前要關中斷,執行完臨界區馬上開中斷。c os 中的這兩個巨集呼叫分別是 os enter critical 和os exit critical 因為這兩個巨集的定...