Sample source: A bare-metal experiments with the RaspberryPi logo

Sample source: A bare-metal experiments with the RaspberryPi

Free

My bare-metal experiments with the RaspberryPi

FreeFree tier
Type
Open Source

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.