任務的掛起與恢復的API函數介紹 API函數 描述 vTaskSuspend() 掛起任務 vTaskResume() 恢復被掛起的任務 xTaskResumeFromISR() 在中斷中恢復被掛起的任務 1、掛起任務類似暫停,可恢復; 刪除任務,無法恢復 2、恢復是恢復被掛起任務 3、帶FromI ...
任務的掛起與恢復的API函數介紹
API函數 | 描述 |
---|---|
vTaskSuspend() | 掛起任務 |
vTaskResume() | 恢復被掛起的任務 |
xTaskResumeFromISR() | 在中斷中恢復被掛起的任務 |
1、掛起任務類似暫停,可恢復; 刪除任務,無法恢復
2、恢復是恢復被掛起任務
3、帶FromISR尾碼是在中斷函數中專用的API函數
任務掛起函數介紹
void vTaskSuspend(TaskHandle_t xTaskToSuspend)
形參 | 描述 |
---|---|
xTaskToSuspend | 待掛起任務的任務句柄 |
此函數用於掛起任務,使用時需將巨集 INCLUDE_vTaskSuspend 配置為 1。
無論優先順序如何,被掛起的任務都將不再被執行,直到任務被恢復 。
註意:當傳入的參數為NULL,則代表掛起任務自身(當前正在運行的任務)
任務恢復函數介紹(任務中恢復)
任務中恢復被掛起函數:void vTaskResume(TaskHandle_t xTaskToResume)
形參 | 描述 |
---|---|
xTaskToResume | 待恢復任務的任務句柄 |
使用該函數註意巨集:INCLUDE_vTaskSuspend必須定義為 1
註意:任務無論被 vTaskSuspend() 掛起多少次,只需在任務中調用 vTakResume() 恢復一次,就可以繼續運行。且被恢復的任務會進入就緒態!
任務恢復函數介紹(中斷中恢復)
中斷中恢復被掛起函數: BaseType_t xTaskResumeFromISR(TaskHandle_t xTaskToResume)
形參 | 描述 |
---|---|
xTaskToResume | 待恢復任務的任務句柄 |
函數:xTaskResumeFromISR返回值描述如下:
返回值 | 描述 |
---|---|
pdTRUE | 任務恢復後需要進行任務切換 |
pdFALSE | 任務恢復後不需要進行任務切換 |
使用該函數註意巨集:INCLUDE_vTaskSuspend 和 INCLUDE_xTaskResumeFromISR 必須定義為 1
該函數專用於中斷服務函數中,用於解掛被掛起任務
註意:中斷服務程式中要調用freeRTOS的API函數則中斷優先順序不能高於FreeRTOS所管理的最高優先順序