Question about functioning of vTaskSuspend and vTaskDelete

lagavulin18 wrote on Sunday, July 27, 2014:

My task terminate- and suspend function must comply to the following definitions:

Definition: terminate

All resources occupied by the terminated task (including processor) are withdrawn from it. Synchronization variables blocked by the task, however, are not released automatically.

Definition: suspend

The processor allocated to it is withdrawn from it, but not all the other resources
occupied by it. A suspended task can only be continued by executing a continue (vTaskResume) statement.

In my opinion I could realize “terminate” with vTaskDelete() and “suspend” with vTaskSuspend(). Any other opinions?

Further reading: 9.2.3/9.2.4

rtel wrote on Monday, July 28, 2014:

In FreeRTOS, when a task is deleted the memory allocated to the task by the RTOS is automatically freed - but any resources allocated to the task by the application must be freed by the application. When a task is suspended it will not run until another task unsuspends it, but no resource allocation is modified at all.