Quality RTOS & Embedded Software

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




Loading

TaskCreate from within a task?

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

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.

Regards.


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




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

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

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