Where can find the code of FreeRTOS+IO

Hi, all,

I notice that FreeRTOS have some API like FreeRTOS_write, FreeRTOS_read, FreeRTOS_ioctl, however, when I check FreeRTOS git repository, I can not find any API reference or any source code related to it, so do you know how I can get these codes?


Where do you see those functions?

like here FreeRTOS Plus IO - a POSIX style peripheral driver library extension for FreeRTOS
and FreeRTOS_open API reference documentation

One thing to watch out for, ‘FreeRTOS’ can be used in several different contexts. It is commonly used to refer to just the Kernel, but sometimes to also include the wider infrastructure of libraries provided around it (like the FreeRTOS Plus IO library). I think these are stored in different repositories, there being a simpler repository with just the Kernel, and a second broader repository (or even possibly multiple repositories) for the extended libraries which reference the core library as a piece of them.

Hi, dear richard damon

Yes, I have seen FreeRTOS+IO code in many third-party repositories, but most of them are in their own custom code, and I didn’t find any relevant code in the FreeRTOS-plus/FreeRTOS+IO code base. So I’m curious, is such code something that we need to customize ourselves? Or is there an official template code provided?


If you go to the FreeRTOS.org web site, you should find links to download the official versions of the ‘plus’ libraries. I note when looking there, the +IO is marked depreciated, so I am not sure on its exact state.

Looking at the FreeRTOS GitHub account, there is a ‘FreeRTOS’ repository that pulls in all of the FreeRTOS kernel and plus directories (or you could pull down just the piece you want).

It references the 'FreeRTOS-Kernel repository as a reference to get the core, which may have been where you were first looking.

yes, the directory is still there, but the code cannot be found anywhere.
Also, I checked the Github commit log, the FreeRTOS-Plus/Source/FreeRTOS-Plus-IO / never changed since 2013. So I just wondering where can I find a proper implementation of such code, or is there any way I can access a PCI device from a FreeRTOS kernel apart from using the API reference in FreeRTOS-IO?

Looking in there, I see the empty directory, it could be that it has gone from beyond the indicated deprecation to effectively removed.

The Kernel NEVER had any direct access to I/O devices, those were always additional libraries with a machine dependent part. The key would be needing to find/write a compatible PCI driver for your machine. FreeRTOS-Plus-IO would have never been the full answer to your problem, it just defined a uniform API that drivers would support to allow generic access to them. You would have still needed to find the needed PCI driver to use too.

There is a download link here: https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_IO/Demo_Applications/LPCXpresso_LPC1769/NXP_LPC1769_Demo_Description.html#Download_Link As previously noted, this is deprecated so rather old. You could look at this as an alternative.

Thanks, after I checked the source code provided by rtel, seems I have to write some machine dependent code for the device I/O, I will look into it.