Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


TaskCreate from within a task?

Posted by Jörg Krein on January 18, 2007
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 ;-)

RE: TaskCreate from within a task?

Posted by Richard on 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.


[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

Version 10.1.0 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner