xTaskCreate

"XTaskCreate-FreeRTOS xTaskCreate( pvTaskCode

XTaskCreate-FreeRTOS API出自Open RTOS

跳轉到: 導航, 搜尋
task. hportBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask );創建新的任務並添加到任務佇列中,準備運行
參數:

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 );
}

相關詞條

相關搜尋

熱門詞條

聯絡我們