I would like to resume this post
I’m not familiar with Freertos (complete ignorant newbie), but I do not comprehend the need to differentiate between suspended and blocked states for a task.
If the difference is really just about the presence of a timeout for blocked state, then in my mind, I see a timeout just like any other type of event that is going to release a semaphore for the sake of a suspended routine. It can be a keyboard press, a timeout, or the union of these and several more events.
Therefore, I’d like to know the motivation for supporting these two states. They are reported in documentation and differentiated in APIs, therefore I assume there must be some good reason that I’m missing for them to exist.
Maybe timeout support from the OS ensures RTOSness responsivity, or maybe it guarantees 100% that something will wake up the task, which maybe is not so sure to happen if I had that timeout handled by the carefree hands of a userspace task… ? Or maybe I’m completely misunderstanding everything at all.
I’d like to understand this aspect of FreeRTOS.