FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [January 2014 Threads]
Problem is to solve classic race condition in single data producer and multiple consumer model in double buffering.
1st task is generating some data (eg. gsensor)
other tasks are reading those data.
Target is to inform all waiting tasks that there is new data, or pass data directly to those tasks and do not "miss" any sample or inform task that he missed a data and return old one.
Is there a simple way to do that in FreeRTOS 7.5.2 without creating a queue for every task? Edge triggered everwitable queue would be very handy here.
It might be something you can do in version 8 using an event group. You could use the xQueueOverwrite() function to post a message, have each task use xQueuePeek() to view the message, and the xEventGropuSync() function to create a synchronisation point after each task has read the new data. http://www.freertos.org/xEventGroupSync.html
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.