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...