This is our Final Project Repository for ENPM818J
Authored by:
- Zachary Steinberg
- Troy Bates
Here is our final presentation: Final Presentation Link
- Integrate cFS with FreeRTOS on the Pi Pico
- Implement or adapt the OSAL (Operating System Abstraction Layer) for the Pi Pico
- (OSAL Sub Rq) The system will allow the create and manage multiple concurrent tasks
- (OSAL Sub Rq) The system shall support inter-task synchronization (mutexes, semaphores, or message queues)
- (OSAL Sub Rq) The system shall implement sleep functions
- Port PSP to run on the Pi Pico
- (PSP Sub Rq) The system shall use the PSP in order to initialize all required hardware components before cFS startup. Including but not limited to system clock, on board memory, and applicable peripherals
- (PSP Sub Rq) The system shall enable through the PSP a software system reset
- Run basic cFS application (Hello World esk) to demonstrate system capabilities
- Create instructions and Documentation for how to run cFS with OSAL and PSP modules implemented with freeRTOS on the Pi Pico
This directory has the freeRTOS ports that we added to the cFS freeRTOS library. We were able to fully implement the RP2040 port with OSAL and get the project built. We were not able to compile OSAL due to the memory limitations of the Pi Pico board.
This demo was taken from the freeRTOS SMP Demos. We modified the blinky demo by adding print statements to visualize and log the freeRTOS tasks. We ran this demo to validate that the RP2040 freeRTOS port was working properly before integrating it into our OSAL project.
Here is the fork of the cFS-freeRTOS repo that we made from pztrick's fork: cFS Fork
Our repo has two development branches that were never merged to main:
- zs
- tbates-dev
These branches have our configurations that we made to get the cFS container built on our machines.
Here is the OSAL fork that we made from pztrick's fork: OSAL Fork
Our repo has two development branches that were never merged to main:
- zstein-dev
- tbates-dev
Most of our work was in the tbates-dev branch. We created two branches initially because the two of us were working in parallel to get OSAL running.