💻 C and Assembly with Raspberry Pi

Links

Documentation for the Raspberry Pi

Raspberry Pi on elinux.org

https://elinux.org/RPi_Hub

Peripheral documentation

https://www.raspberrypi.org/documentation/hardware/raspberrypi/README.md

Raspberry Pi 1 Models A, A+, B, B+, Raspberry Pi Zero, Raspberry Pi Zero W, and Raspberry Pi Compute Module 1

Raspberry Pi 2 Model B

Raspberry Pi 3 Model B, later Raspberry Pi 2 Model B and Raspberry Pi Compute Module 3

The BCM2837 is identical to the BCM2836.1

Raspberry Pi 3 Models A+, B+ and Raspberry Pi Compute Module 3+

The BCM2837B0 is identical to the BCM2837, with changes to the internal frequencies.1

Raspberry Pi 4 Model B, the Raspberry Pi 400, and the Raspberry Pi Compute Module 4

Raspberry Pi 5


1 Information from: https://www.raspberrypi.org/documentation/hardware/raspberrypi/README.md


Forum

Raspberry Pi Forum: https://www.raspberrypi.org/forums/

Bare Metal Projekte

Name RPI Programming language Content Link Current
Writing a "bare metal" operating system for Raspberry Pi 4 Pi4 C (ARMv8) UART, Grafik, Bluetooth, Sound, Multicore, Interrupts, SPI Ethernet, TCPIP Webserver https://www.rpi4os.com/ or https://github.com/isometimes/rpi4-osdev Current
Bare Metal Programming on Raspberry Pi 3 Pi3 C (ARMv8) Multicore, UART1, Mailbox, UART0, Zufallszahlen, Timer, PowerOff, Grafik, Diskfunktionen, Memory https://github.com/bztsrc/raspi3-tutorial approx. 3 years
Circle Pi0-5 C++ Multicore, Interrupt (IRQ, FIQ), UART, GPIO, Timer, DMA, PWM, HDMI-Ton, WLAN, Ethernet, USB (HUB, HID, Speichergeräte, MIDI, Drucker), FAT, FatFs, Grafik https://github.com/rsta2/circle 2 months
Ultibo Pi0-4 Free Pascal Multicore, Interrupt (IRQ, FIQ), UART, GPIO, Timer, DMA, PWM, HDMI-Ton, WLAN, Ethernet, USB (HUB, HID, Speichergeräte, MIDI, Drucker), FAT, FatFs, Grafik https://ultibo.org/ approx. 1 month
Raspberry-Pi Bare Metal Tutorial Pi0-4 C C Runtime, Interrupts, UART, Mailbox, Grafik https://www.valvers.com/open-software/raspberry-pi/bare-metal-programming-in-c-part-1/ approx. 6 years
USPi - A bare metal USB driver for Raspberry Pi 1-3 written in C Pi0-3 C Circle in C https://github.com/rsta2/uspi approx. 3 years
dwelch67 Pi0-3 C Float, Bootloader, MMU, SPI, UART, VIDEO, ZLIB https://github.com/dwelch67/raspberrypi approx. 9 years
... Pi1 Assembler https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html approx. 14 years
Learning operating system development using Linux kernel and Raspberry Pi Pi3 C Printf, Interrupt, Memory
Vergleicht Bare Metal und Linux
https://github.com/s-matyukevich/raspberry-pi-os 6 years
PeterLemon RaspberryPi Pi1-3 Assembler https://github.com/PeterLemon/RaspberryPi 5 years
pi-baremetal Pi1 C https://github.com/brianwiddas/pi-baremetal 14 years
Raspberry Pi Bare Bones Pi1-4 C QEMU http://wiki.osdev.org/Raspberry_Pi_Bare_Bones Current
circle-stdlib Pi1-4 C++ Circle StdLib https://github.com/smuehlst/circle-stdlib 2 months
sean-lawless / computersystems Pi1-4 C https://github.com/sean-lawless/computersystems/tree/master Current
macoy rpi-system Pi4 C Circle in C (nur RPI4) https://macoy.me/code/macoy/rpi-system 1 year

As of July 2026

Useful links

Name Contents Link
Introduction to Computer Organization: ARM Assembly Language Using the Raspberry Pi ARM-Assembler https://bob.cs.sonoma.edu/IntroCompOrg-RPi/intro-co-rpi.html
Arm GNU Toolchain Downloads Toolchain https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
ARM assembler in Raspberry Pi ARM-Assembler https://thinkingeek.com/arm-assembler-raspberry-pi/
A Guide to ARM64 / AArch64 Assembly on Linux with Shellcodes and Cryptography ARM-Assembler https://modexp.wordpress.com/2018/10/30/arm64-assembly/
Découvrir l'assembleur ARM sur Raspberry Pi ARM-Assembler https://assembleurarmpi.blogspot.com/ or https://github.com/vincentARM/ARMassembly64
ARMv8 A64 Quick Reference ARM-Assembler https://courses.cs.washington.edu/courses/cse469/18wi/Materials/arm64.pdf
ARMv8 Instruction Set Overview ARM-Assembler https://www.cs.princeton.edu/courses/archive/fall23/cos217/reading/ArmInstructionSetOverview.pdf
A64 Systemaufrufe ARM-Assembler https://arm64.syscall.sh/
https://s-matyukevich.github.io/raspberry-pi-os/

Other, unassigned

Raspberry Pi DMA programming in C https://iosoft.blog/2020/05/25/raspberry-pi-dma-programming/

Mailbox property interface https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface