All Projects → tonyg → Pi Nothing

tonyg / Pi Nothing

Licence: gpl-3.0
i386, x86_64, ARMv7 assembler/linker; Nothing-like mid-level language; Linear-scan register allocator; Operating system for Raspberry Pi

Programming Languages

racket
414 projects

Programming language, compiler, and operating system for bare-metal ARM

Quickstart

To run the main baremetal Raspberry Pi kernel,

$ git clone git://github.com/tonyg/pi-nothing.git
$ make link all
$ cp baremetal/raspberrypi.img /PATH/TO/YOUR/RASPBERRY/PI/SDCARD/kernel.img

Boot the Raspberry Pi.

There is also a simpler kernel for the QEMU-emulated versatilepb machine that can be run in emulation from the host:

$ cd baremetal
$ make versatilepb.img
$ ./run-kernel

A graphical variant also exists.

When running a versatilepb kernel in emulation, you're interacting with the kernel via the emulated board's serial UART. Type characters at it, and it will echo them. When you get bored of this, press C-a x to quit qemu.

Third-party software

This package makes use of a number of programs and resources generously developed and released as free software by other authors:

  • disarm, a disassembler for ARM instructions, developed by and copyright to Gareth McCaughan.

  • udis, a disassembler for x86 and x86-64, written by and copyright to Vivek Thampi.

  • font0, a very simple monospace bitmapped font developed by and copyright to Bitstream, Inc.

  • raspbootin, a boot-over-serial bootloader for the Raspberry Pi, developed by and copyright to Goswin von Brederlow.

and, of course, QEMU and Racket themselves.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].