TaskCreate from within a task?

Hi, this question surely is rather stupid and answered somewhere in the docu, but as I couldn’t find the answer yet: Is it possible to start a new task from within an already running one? Or must all tasks be created in main() before starting the scheduler? Thanks ;-)

TaskCreate from within a task?

Yes it is possible to create one task from another. Take a look at the file FreeRTOSDemoCommonMinimaldeath.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. Regards.