May 2020
Intermediate to advanced
496 pages
13h 54m
English
In order to delete a task from another task, blueTaskHandle needs to be passed to xTaskCreate and its value populated. blueTaskHandle can then be used by other tasks to delete BlueTask, as shown here:
TaskHandle_t blueTaskHandle;int main(void){ HWInit(); assert_param( xTaskCreate(BlueTask, "BlueTask", STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, &blueTaskHandle) == pdPASS); xTaskCreateStatic( RedTask, "RedTask", STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, RedTaskStack, &RedTaskTCB); vTaskStartScheduler(); while(1);}void RedTask( void* argument ){ vTaskDelete(blueTaskHandle);}
The actual code in main.c results in the blue LED blinking for ~ 1 second before being deleted by RedTask. At this point, the blue LED stops ...