FreeRTOS Port Handling Questions

I apologize, I couldn’t find an easy category to stick this post. I want to be sure I understand this correctly. If I have hardware gpio extensions in addition to a evaluation kit, FreeRTOS + IO appears to be an optional, if more convienent, extension. However, the base FreeRTOS kernel will integrate with other hardware gpio handling without needing to be initialized by FreeRTOS, correct? I am curious though, where can I find the FreeRTOS documentation for handling gpio? Is it only found on the +IO version, through a library, or the standard kernel as well?

“Standard” FreeRTOS is nothing but a task scheduler with no support for peripherals of any kind, except for a system clock. Period.

FreeRTOS+TCP is FreeRTOS with additional support for network peripherals such as ethernet controllers plus a network (TCP/IP) stack.
Note that FreeRTOS+TCP does NOT provide “generic” support for all ethernet controllers; drivers for not supported controllers must be added individually. Is it NOT mandatory to use FreeRTOS+TCP for applications requiring networking support; FreeRTOS also integrates with other network stacks such as Lwip.

Likewise, FreeRTOS+IO is an extension of FreeRTOS with support for another commonly used peripheral, namely, GPIO. The same as with networking holds here: There is no requirement to use the extensions for developers needing access to GPIO, and there is no “generic” support for all GPIO peripherals. In particular, there is no “generic I/O model” in FreeRTOS, meaning noone is required to support or use preprovided APIs to access those, neither on the application nor the driver level. There are deliberations to define such a model, but to my best knowledge, those deliberations have not made it very far yet.

Does that answer your question?


Yep, it does. Many thanks!