/PiOS

My experimental bare metal OS for the raspberry pi

Primary LanguageCMIT LicenseMIT

PiOS

My experimental bare metal OS for the raspberry pi. This file is used to track its current state and what I'm currently working on.

What it does right now:

  • GPIO - Example: Flash LED
  • Framebuffer - Drawing pixels
  • Terminal - Character based display
  • System Timer
  • Interrupts
  • MMU
  • eMMC reading/writing
  • Fat32 - Small subset (read-only)
  • Loading and executing binaries (ELFs)
  • UART and MiniUart send/receive (interrupt based receive)
  • Virtual memory (high memory kernel, Low memory user)
  • Stacktraces on faults

What I'm planning to do / working on:

  • Multitasking
  • Fat32 - Writing
  • Audio
  • Support for addition file systems: SFS, EXT2(?)

Build requirements:

Building:

Just clone the repository and run make in the root directory

Branches:

master

Latest and greatest, not guaranteed to be stable.

0.01
  • Simple terminal
  • Framebuffer
  • Keyboard input (using Chadderz usb driver)
0.10

Essentially started over, removed USB driver (I intend to write my own).

  • UART
  • Terminal output
  • Interrupt handling
  • Emmc driver
  • Mailbox
  • MMU
  • Timer
  • Reading elf
  • Stack trace with function names
  • Very crude multitasking (Multiple processes, each with one main thread)