task. hportBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask );創建新的任務並添加到任務佇列中,準備運行
基本介紹
名稱,出自Open RTOS,參數,返回,例子,
名稱
XTaskCreate-FreeRTOS API
出自Open RTOS
參數
pvTaskCode | 指向任務的入口函式. 任務必須執行並且永不返回 (即:無限循環). |
pcName | 描述任務的名字。主要便於調試。最大長度由configMAX_TASK_NAME_LEN.定義 |
usStackDepth | 指定任務堆疊的大小 ,堆疊能保護變數的數目- 不是位元組數. 例如,如果堆疊為16位寬度,usStackDepth定義為 100, 200 位元組,這些將分配給堆疊。堆疊嵌套深度(堆疊寬度)不能超多最大值——包含了size_t類型的變數 |
pvParameters | 指針用於作為一個參數傳向創建的任務 |
uxPriority | 任務運行時的優先權 |
pvCreatedTask | 用於傳遞一個處理——引用創建的任務的句柄 |
返回
pdPASS 是如果任務成功創建並且添加到就緒列中,另外錯誤代碼在projdefs. H檔案定義
例子
// 創建任務
void vTaskCode( void * pvParameters )
{ for( ;; )
{ // 任務代碼 }
}
// 函式來創建一個任務
void vOtherFunction( void )
{ static unsigned char ucParameterToPass;
xTaskHandle xHandle;
// 創建任務,存儲處理。注意傳遞的參數為ucParameterToPass
// 沒有那么長,或者至少隨著時間毀滅,
// 新的時間, 嘗試存儲它
xTaskCreate( vTaskCode,
"NAME",
STACK_SIZE,
&ucParameterToPass,
tskIDLE_PRIORITY,
&xHandle );
// 使用句柄來刪除任務
vTaskDelete( xHandle );
}