Determining FreeRTOS platform I need

I have only limited experience with FreeRTOS. I am working on a project that uses Raspberry Pi pico W hardware. What the project does is:

  1. Gather some data from sensors on the I2C bus
  2. Send the data to a site using HTTP Get with query parameters
  3. Have SNTP capabilities to be able to keep the real time clock in sync with rest of world.

It seems that FreeRTOS is broken up into a lot of pieces. This makes sense as it enables people to only include the pieces they need. This keeps the foot print small.

I assume I need coreHTTP and coreSNTP and I cloned them locally. I then cloned the FreeRTOS and it had a FreeRTOS-Plus directory and in that directory’s Source directory there was a FreeRTOS-Plus-TCP submodule. I assume I want this to support the coreHTTP and coreSNTP libraries.

There is also a FreeRTOS-IO directory. It seems to only have a pointer to a demo page that I keep getting page not found. In looking through forum history, it seems that FreeRTOS-IO is deprecated. It seems that Common I/O is the alternative. It refers you to common-io.html on Amazon. This seems to be a HAL layer to standardize access to devices.

I would love to use this to access my I2C device. But I can’t seem to find where the common I/O code is located. Nor can I find any reference to whether the Raspberry Pi pico I2C is supported by common I/O.

Are there any pointers to where the common I/O source is located and whether the Raspberry Pi pico I2C is supported ?

Thanks
Chris

A better way to phrase it is that FreeRTOS is essentially nothing but a platform independent task scheduler with no support for peripherals whatsoever. There are add-on packages for some widely used peripherals such as networks, UARTs or file systems, but each of those has its own I/O model.

Several attempts have been made to define/implement platform independent abstractions for periphals (in particular GPIO), but none has made it into the core code base.

If you query github.com for freertos and rp2040, you will find many many projects around the Pi Pico and FreeRTOS, that would be a fair starting point.

2 Likes