This project extends the FreeRTOS kernel to implement real-time scheduling algorithms as part of CPSC 538G. The goal was to implement Earliest Deadline First (EDF), Stack Resource Policy (SRP), Constant Bandwidth Server (CBS), and multiprocessor EDF scheduling.
All implementations were tested on a Raspberry Pi Pico (RP2040). See the following directories for documentation on each feature:
- EDF — Earliest Deadline First scheduling
- SRP — Stack Resource Policy
- CBS — Constant Bandwidth Server
- MP — Multiprocessor EDF scheduling
First, put the Pico into bootloader mode by holding the BOOTSEL button while plugging it into USB. It will mount as RPI-RP2.
Then deploy using one of two methods:
VS Code tasks — open the Command Palette, run Tasks: Run Task, and select the desired build/deploy task.
Deploy script — run from the repo root:
./scripts/deploy-uf2.sh [target]target: the CMake target to build and flash. Defaults toCPSC-538G-Project.- If the Pico is not auto-detected, set
PICO_MOUNT_PATHto its mount point:PICO_MOUNT_PATH=/path/to/RPI-RP2 ./scripts/deploy-uf2.sh [target]
The script will build the target, locate the mounted Pico, copy the .uf2 file, and the Pico will reboot into the new firmware automatically.