Quality RTOS & Embedded Software

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


Loading

Task creation in another task

Posted by *anonymous on December 6, 2013

When creating a task within another task as shown below

int main( void ) {

xTaskCreate( vTask1, "Task1", 500, NULL, 1, NULL );
vTaskStartScheduler();

for(;;);

}

void vTask1( void *pvParameters )
{

    xTaskCreate( vTask2, "Task2", 500, NULL, 1, NULL );
}

In this code vTask2 will create again and again in each call of vTask1 right? will that use separate memory for each creation?


Task creation in another task

Posted by rtel on December 6, 2013

The code, as you have provided it, is not correct because you show vTask1() exiting its function without deleting itself. Tasks must include an infinite loop, or be deleted. However, I assume you have cut out all the other source code to just show the line of interest.

First - it is perfectly ok to create tasks from inside other tasks.

Second - any call to xTaskCreate() will allocate a TCB structure and a stack for that task. If you create TaskX, then, without deleting TaskX you create TaskY the two tasks will not be using the same memory because both calls to xTaskCreate() will allocate RAM separately.

On the other hand, if you create TaskX then delete TaskX the memory allocated to TaskX will be freed again. If you subsequently create TaskY xTaskCreate() will allocate RAM for TaskY just like normal, and that RAM may or may not be the same that was previously allocated to TaskX. As TaskX has been deleted it does not matter if the same memory is reused.

Regards.


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


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

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Version 10.1.1 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.


Careers

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

Renesas

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