rtel wrote on Thursday, January 18, 2007:
Yes it is possible to create one task from another.
Take a look at the file FreeRTOS\Demo\Common\Minimal\death.c for an example.
In this example the task vCreateTasks() periodically creates a set of ‘suicide’ tasks. The suicide tasks just delete themselves, or another of the suicide tasks.
One thing to watch our for is the memory management. Creating a task uses memory from the heap. Deleting a task frees the memory. This is ok if you are always allocated the same size blocks (as in the example), but could suffer from memory fragmentation resulting in an inability to create a task.