Sample source: A bare-metal experiments with the RaspberryPi
FreeMy bare-metal experiments with the RaspberryPi
FreeFree tier
About Sample source: A bare-metal experiments with the RaspberryPi
my-os is a GitHub repository by majorviraj that documents bare-metal experiments aimed at writing a working operating system for the Raspberry Pi. The project includes both assembly (ARMv7) and C code, and has been tested on Raspberry Pi B+, with expected compatibility on Raspberry Pi Model 2 and A+. It leverages the arm-gcc-none-eabi-7-2017-q4-major toolchain and explores hardware interfaces such as FAT32/FATFS file systems, SD card (eMMC), JTAG debugging via OpenOCD, and the Bus Pirate. The repository also features a Pong game implementation as a bare-metal demonstration. Topics include baking-pi, bcm2835, and low-level embedded systems development.
Key Features
Bare-metal operating system experiments for Raspberry Pi
ARMv7 assembly and C code implementation
FAT32 and FATFS file system support
JTAG debugging with OpenOCD
eMMC (SD card) interface programming
Bus Pirate support for low-level hardware exploration
Includes a Pong game as a bare-metal demo
Targets Raspberry Pi B+, Model 2, and A+
Uses arm-gcc-none-eabi-7-2017-q4-major toolchain
Pros & Cons
Pros
- Educational resource for bare-metal and OS development
- Covers real hardware interaction (FAT32, JTAG, eMMC)
- Combines assembly and C for deep learning
- Open source with publicly available code and commit history
- Tested on actual Raspberry Pi hardware
- Includes fun Pong demo as a practical application
Cons
- Limited to specific Raspberry Pi models (B+, 2, A+)
- Toolchain and code may be outdated (last commit from 2017)
- No releases or packages published for easy deployment
- Not a functional or production-ready operating system
- Limited documentation beyond README and code comments
Best For
Learning operating system development on Raspberry PiBare-metal embedded programming educationExperimenting with ARM low-level hardware interfacesHobbyist OS projects for ARMv7 devicesUnderstanding boot process and hardware initialization on BCM2835
FAQ
What is my-os?
My-os is a GitHub repository documenting bare-metal experiments to write a working operating system for the Raspberry Pi.
Which Raspberry Pi models are supported?
The code has been tested on Raspberry Pi B+ and should also work on Raspberry Pi Model 2 and A+.
What programming languages are used?
The project uses C (52.3%), Assembly (31.6%), and Makefile (16.1%) according to the repository language statistics.
What toolchain is required?
The project uses the arm-gcc-none-eabi-7-2017-q4-major toolchain, which can be downloaded from the ARM developer site.
Does my-os include any demo applications?
Yes, the repository includes a Pong game as a bare-metal demo application.