UCOS II學習筆記

2021-09-24 18:54:59 字數 1210 閱讀 9175

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.對硬體的配置:rcc/gpio/tim/uart的時鐘,模式配置;

void bsp_init(void) //硬體配置

3.main函式操作任務:

int main(void)

任務函式:

osinit();

ostaskcreate();

ostaskcreateext();

引數:task 指向任務**的指標。

pdata 指向乙個型別可以選擇的資料區,很多時候是(void *)0.

ptos 指向任務堆疊棧頂的指標。任務堆疊用於儲存區域性變數、函式引數、返回位址及中斷時cpu暫存器的狀 態。如果初始化常量os_stk_growth設為1(在os_cpu.h中定義),將堆疊設為stack grows from high to low memory on arm ,此時ptos應該指向任務堆疊空間的最高位址。

prio 任務的優先順序。數字越小,優先順序越高。

id 任務的標識,可以設定同優先順序。

pbos 指向堆疊低端的指標。

stk_size 指定任務堆疊的大小。

pext 定義資料結構的指標,很多時候是(void *)0.

例子:os_stk *taskstk[1024];

void main(void)

void task(void *pdata)

}ostaskdel();

引數:任務的優先順序。

ostaskdelreq();

引數:所刪除任務的優先順序

例子:請求刪除其它任務的任務 ( 任務 b)

void requestortask (void *pdata)

4-18

}/*應用程式***/ (4)}}

需要刪除自己的任務( ( 任務 a)

void tasktobedeleted (void *pdata)

else

}

ucosII學習筆記

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

ucosII學習筆記 1

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

uCOS II學習筆記(一)

對於系統的學習,一直也來是我非常嚮往的地方。但是由於各種原因一直沒有實現,而且進展也非常緩慢。不管怎麼說,自己一定會努力朝這個方面發展,希望以後能在自己的專案中使用os,從而走上更高的台階。不積跬步,無以至千里。下面將留下我的腳印。1.在呼叫ucos ii功能函式時,中斷總應當是開著的。原因是 任務...