Sample source: FreeRTOS v9.0.0 port for Raspberry Pi 1
FreeFreeRTOS v9.0.0 for Raspberry Pi 1 bare-metal
FreeFree tier
About Sample source: FreeRTOS v9.0.0 port for Raspberry Pi 1
FreeRTOS v9.0.0 port for Raspberry Pi 1, a bare-metal operating system adaptation that includes a BCM2835 library (adapted from Linux for bare-metal use) to interface with I2C, SPI, GPIOs, and a mini UART driver on GPIO pins 14 and 15. This open-source project provides the necessary modifications to run FreeRTOS on the Raspberry Pi 1 (ARM6) and includes credit to original authors James Walmsley (FreeRTOS v7.2.0 port), David Welch (bare-metal examples), and Mike McCauley (BCM2835 library). It requires an arm-none-eabi toolchain and includes Docker support for compilation.
Key Features
FreeRTOS v9.0.0 port for Raspberry Pi 1
BCM2835 library adapted for bare-metal (I2C, SPI, GPIOs)
Mini UART driver on GPIO pins 14 and 15
Docker support for building
Requires arm-none-eabi toolchain
Pros & Cons
Pros
- Open-source and free to use
- Based on well-known FreeRTOS v9.0.0
- Includes adapted BCM2835 library for bare-metal
- Credit given to original open-source contributors
- Docker-based build process simplifies setup
Cons
- Only supports Raspberry Pi 1 (ARM6) not later models
- Documentation is limited to the README
- Requires manual toolchain setup outside Docker
- Not actively maintained (last commit not recent)
- Mini UART driver and library cleanup marked as incomplete
Best For
Running FreeRTOS on Raspberry Pi 1 in bare-metal modeLearning embedded real-time operating systems on ARM6 architectureDeveloping low-level hardware drivers for BCM2835Educational projects for RTOS concepts
FAQ
What hardware does this port support?
It is specifically designed for the Raspberry Pi 1 (ARM6) with BCM2835 chip.
What does the port include?
It includes FreeRTOS v9.0.0, a BCM2835 library adapted for bare-metal operation (I2C, SPI, GPIOs), and a mini UART driver for GPIO pins 14 and 15.
Do I need a special toolchain?
Yes, you need the arm-none-eabi toolchain. The README provides a link to download it from ARM.
Can I build using Docker?
Yes, the repository includes a Dockerfile. You can create the image, mount the project directory, run the container, and execute make in the appropriate directory.