2022-05-16 06:58 AM
For my example, I have 3 tasks; UserInterfaceTask.c, WorkerTask.c and ControllerTask.c. When a user pushes a button the UserInterfaceTask detects it and sends a Queue message to the ControllerTask. The ControllerTask then updates a global Mailbox which any tasks, including WorkerTask.c can access via xQueuePeek() however how do I notify the WorkerTask that a new value has been changed by ControllerTask using xQueueOverwrite()? My WorkerTask is polling, so is it acceptable to poll xQueuePeek() every 1 or 2ms or is there a cleaner way to be notified of changes to global variable or mailbox values?
Thank you
2022-05-16 07:12 AM
This is really a question for FreeRTOS - not specific to STM32:
https://www.freertos.org/Documentation/RTOS_book.html
https://www.freertos.org/RTOS-contact-and-support.html
https://www.freertos.org/community/overview.html
Note that there is a free Windows simulator - so you can learn FreeRTOS without all the added complications of an embedded microcontroller target:
2022-05-16 07:20 AM
I agree. For some reason, I still cannot post on freeRTOS. The community moderator has not given me permission as a new user, and I emailed them 3 times now over the last few weeks asking why I cannot post. No response. I just logged in at freertos again and confirmed I cannot post questions.
UPDATE: I was able to get into freeRTOS community support. The solution was to stay logged in for about 1/2 hour while navigating posts and was automatically 'upgraded' to be allowed to post new topics.