02 FreeRTOS任務建立和刪除

2021-08-16 03:32:56 字數 1033 閱讀 7908

basetype_t xtaskcreate( taskfunction_t pxtaskcode,

const char * const pcname,

const uint16_t usstackdepth,

void * const pvparameters,

ubasetype_t uxpriority,

taskhandle_t * const pxcreatedtask )

動態建立任務,需要配置巨集 configsupport_dynamic_allocation 為1,因為該函式會用到記憶體分配函式pvportmalloc。

pxtaskcode—指向任務函式的入口。任務永遠不會返回(位於死迴圈內)

pcname—任務的名字,字串長度由巨集 configmax_task_name_len 決定。

usstackdepth—任務堆疊大小,能夠支援的堆疊變數數量,而不是位元組數。比如,在32位寬度的堆疊下,usstackdepth定義為100,實際使用400位元組的堆疊空間。

pvparameters—任務引數,當任務建立時,作為引數傳遞給任務。

uxpriority—任務優先順序。

pxcreatedtask—用於回傳乙個控制代碼(id),建立任務後可以使用這個控制代碼引用任務。

如果任務成功建立並加入就緒列表函式返回pdpass,否則函式返回錯誤碼,具體參見

projdefs.h。

void vtaskdelete( taskhandle_t xtasktodelete )
從rtos核心管理器中刪除乙個任務。任務刪除後將會從就緒、阻塞、暫停和事件列表中移除。

在檔案freertosconfig.h中,必須定義巨集include_vtaskdelete 為1,本函式才有效。

被刪除的任務,在任務建立時由核心分配的儲存空間會有空閒任務釋放。所以呼叫 vtaskdelete(),必須保證空閒任務獲取一定的微控制器處理時間。

xtasktodelete—被刪除任務的控制代碼。為null表示刪除當前任務。

FreeRTOS任務的建立和刪除

freertos 最基本的功能就是任務管理,而任務管理最基本的操作就是建立和刪除任務。任務的建立 basetype t xtaskcreate taskfunction t pxtaskcode,const char const pcname,const uint16 t usstackdepth,...

FreeRTOS學習 一 任務的建立和刪除

宣告及感謝 跟隨正點原子資料學習,在此作為學習的記錄和總結 環境 keil stm32f103 1.任務的建立 建立任務的方法有三種 1 動態建立 xtaskcreate 使用此xtaskcreate函式 需配置 configsupport dynamic allocation 巨集定義為1 建立開...

任務建立和刪除

在freertos移植到cortex m3硬體平台的文章中,我們已經見過任務建立api,但那篇文章的重點在於如何移植freertos,本文將重點放在任務的建立和刪除api函式上面。任務建立和刪除api函式位於檔案task.c中,需要包含task.h標頭檔案。1.1函式描述 objc view pla...