Updated for FreeRTOS Kernel V11 - January 2024.
FreeRTOS Kernel allows us to add multi-processing to projects on the Raspberry PI Pico. This course teaches the foundations of FreeRTOS Kernel through practical example projects to get you quickly up and running. The course includes 15 separate projects using FreeRTOS Kernel including Symmetric Multi-Processing (using both RP2040 cores).
The course is written for the Raspberry PI Pico and Pico W. The examples will also run on any RP2040 board, though some modification due to different pinouts may be required if the board is different from the Raspberry PI Pico. These examples can be used as a basis for your own projects or as reference examples of the concepts of FreeRTOS Kernel.
This course covers:
Tasks: Multiple concurrent processes on a single core
Semaphores: Sending signals between tasks to protect shared resources
Queues: Queue management. Queues are often used for decoupling tasks
Message Buffers: A queue of variable length items
Symmetric Multiprocessing: Using both RP2040 cores
C++ use of the FreeRTOS Heap
Simple circuits to illuminate LEDs are used in each example. To build these circuits a small amount of equipment is required:
Raspberry PI Pico or Pico W
Micro USB Cable for power
Breadboard and connection wires
12 LEDs. Any colour though examples use 2x Green, 2x Blue, 8x Red
12 75Ohm resistors
Desktop/Laptop for building code and flashing the Pico
The course assumes knowledge of C++. Though each example will walk through the functionality, the course will not talk about the syntax of C++. An understanding of how stack and heap are used by C++ is also assumed.
The course assumes that you can compile and deploy C++ code to the Pico using the Raspberry PI Pico SDK. My other course “Introduction to C Development Environment for Raspberry PICO” teaches these skills.
FreeRTOS Kernel is a foundation state in the journey to more complex projects and IoT devices. Join the course today to have some fun learning FreeRTOS Kernel for the Raspberry PI Pico, Pico W or RP2040 board.