Quality RTOS & Embedded Software

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




Loading

Block time in gatekeeper example 16 from book

Posted by on June 11, 2011
Hi!

Looking at example 16 in the book there is the prvPrintTask() function which is used to send strings to the gatekeeper task. This task uses xQueueSendToBack() with a block time of 0. The comments say that this block time is used because there should always be space in the queue. But I am not sure that this is safe (especially to use it in an example), because both prvPrintTask() instances have priorities higher than the gatekeeper task and use random blocking delays. Additionally there is an ISR also writing to the queue. Maybe it is unlikely that all delays happen to be very short 5 consecutive times (5 is the size of the queue), but on the other hand the gatekeeper uses printf which takes a lot of time so IMHO the queue may become full because the low priority gatekeeper may not get the chance to always empty the queue in time and if it was another type of application - queuing important items to the queue may fail. Or do I misunderstand something?

Regards,
Anguel

RE: Block time in gatekeeper example 16 from book

Posted by on June 11, 2011
Sorry, in the post above of course I wanted to say that prvPrintTask() uses xQueueSendToBack() with a block time of 0.

RE: Block time in gatekeeper example 16 from book

Posted by Richard on June 11, 2011
I think your analysis is in fact accurate. While it is unlikely that the queue would become full, it is definitely not impossible. Probably the comment should be edited. In the example, posts to the queue that are not successful may pas unnoticed as the return value of the queue send function is not checked.

Thanks for pointing this out.

RE: Block time in gatekeeper example 16 from book

Posted by on June 11, 2011
Thanks for the reply Richard!

I am happy that I have understood how FreeRTOS works, at least in theory ;)

Best regards,
Anguel


[ 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