FreeRTOS is a free and open source real-time operating system (RTOS) owned and maintained by Amazon.
The solution to the challenge in the video can be found here: https://www.digikey.com/en/maker/projects/introduction-to-rtos-solution-to-part-2-freertos/b3f84c9c9455439ca2dcb8ccfce9dec5
ESP-IDF FreeRTOS SMP Changes: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/freertos-smp.html
Add this URL to the "Additional Boards Manager URLs" window in Arduino for ESP32 support: https://dl.espressif.com/dl/package_esp32_index.json
In this video, we talk about how a task is created in FreeRTOS using the ESP32 and Arduino. A task in FreeRTOS is similar to a thread in other multi-threaded environments (e.g. POSIX). It is a unit of CPU utilization designed to accomplish some goal. For our purposes, we just want to create a new thread and toggle an LED.
The ESP32 that comes with many development boards (including the Adafruit Feather HUZZAH32 shown in the video) runs a modified version of FreeRTOS (if you are using the ESP32 package for Arduino or the Espressif SDK). Most importantly, the ESP32 version (named ESP-IDF) supports the dual-core processor on the ESP32. Tasks created with the regular xTaskCreate() can run on either core as chosen by the scheduler.
For demo purposes, we want to run all tasks on a single core. This will allow us to experiment with prioritization and shared resources later in this series. To do this on the ESP32, we use the xTaskCreatePinnedToCore() function instead and specify which core to use. If you are using vanilla FreeRTOS in your own build system, you will want to use xTaskCreate() instead.
Product Links:
https://www.digikey.com/en/products/detail/adafruit-industries-llc/3405/7244967
Related Videos:
Introduction to RTOS Part 1 - What is a Real-Time Operating System (RTOS)? - https://youtu.be/F321087yYy4
Introduction to RTOS Part 2 - Getting Started with FreeRTOS - https://youtu.be/JIr7Xm_riRs
Introduction to RTOS Part 3 - Task Scheduling - https://youtu.be/95yUbClyf3E
Introduction to RTOS Part 4 - Memory Management - https://youtu.be/Qske3yZRW5I
Introduction to RTOS Part 5 - Queue - https://youtu.be/pHJ3lxOoWeI
Introduction to RTOS Part 6 - Mutex - https://youtu.be/I55auRpbiTs
Introduction to RTOS Part 7 - https://youtu.be/5JcMtbA9QEE
Introduction to RTOS Part 8 - https://youtu.be/b1f1Iex0Tso
Introduction to RTOS Part 9 - https://youtu.be/qsflCf6ahXU
Introduction to RTOS Part 10 - https://youtu.be/hRsWi4HIENc
Introduction to RTOS Part 11 - https://youtu.be/C2xKhxROmhA
Introduction to RTOS Part 12 - https://youtu.be/LPSHUcH5aQc
Related Project Links:
https://www.digikey.com/en/maker/projects/introduction-to-rtos-solution-to-part-2-freertos/b3f84c9c9455439ca2dcb8ccfce9dec5
Related Articles:
https://www.digikey.com/en/maker/projects/what-is-an-rtos-real-time-operating-system/28d8087f53844decafa5000d89608016
Learn more:
Maker.io - https://www.digikey.com/en/maker
Digi-Key’s Blog – TheCircuit https://www.digikey.com/en/blog
Connect with Digi-Key on Facebook https://www.facebook.com/digikey.electronics/
And follow us on Twitter https://twitter.com/digikey