I’ve been recently interested into trying out FreeRTOS for the first time. I’ve been programming ARM based microcontrollers, using mostly Mbed OS, with little to no issues. Mbed OS is easy to get into, if you read the documentation, know C/C++ and understand how embedded systems and Electronics work.
I was expecting a similar experience with FreeRTOS, walk in the park! “I just need to read and understand the documentation…”, thought to myself. Spoilers, it didn’t work. I’ve been trying to read and understand all resources and documentation about FreeRTOS that is available on the internet. For the life of me, I just can’t understand how and from where to start with FreeRTOS.
The documentation on Mbed OS litrally explains almost everything there is to know on how to get yourself started with a simple Blinky example. FreeRTOS documentation, on the other hand, explains alot of stuff about how FreeRTOS works, there are ton of API documentation and more, yet I can’t for the life of me figure out how to write a simple Blinky.
Does FreeRTOS even follow any specific Development Environment? Or Coding paradigm? For example, on Mbed, you have Mbed Studio or Keil Studio Cloud. You create a workspace, you have a main c++ file, you can have mbed_app.json etc.
I downloaded the FreeRTOS official Quick Demo file, along with the source code for FreeRTOS. It requires the Visual Studio to be installed. The demos are mostly complicated examples for different chips and microcontrollers. I still don’t understand how to write my own simple blinky code.
My objective is to learn to write a simple Blinky on any given supported hardware. So far, based on my research, PlatformIO seems to be a good place to start. The target hardware are ARM Cortex M4, M7, ESP8266 and ESP32. I believe there is a way to implement FreeRTOS on ESP32, using Arduino IDE, but I do not want to learn anything using Arduino software.
In summary:
My question is: How to get started with FreeRTOS using PlatformIO? (or what is the best and quickest way to get started without Arduino?)
Objective: Learn to write Blinky code on any hardware for FreeRTOS (and in the process, learn FreeRTOS)