/RaspberryPi-1

Raspberry Pi Bare Metal Assembly Programming

Primary LanguageAssembly

RaspberryPi


Raspberry Pi & Raspberry Pi 2 Bare Metal Code by krom (Peter Lemon).

All code compiles out of box with the FASMARM assembler by revolution:
http://arm.flatassembler.net
I have included binaries of all the demos.

Special thanks to Dex (Craig Bamford), who helped me get my 1st pixel on the screen =D
Please check out DexOS, a lightning fast bare metal OS, & his Raspberry Pi port of DexBasic:
http://www.dex-os.com
http://www.dex-os.com/DexBasic/DexBasic.htm

Also special thanks to phire, who helped me get my 1st triangle on the screen using the GPU =D

Also special thanks to rst, who helped me get my 1st SMP demo running using all 4 CPU cores of the Raspberry Pi 2 =D
Please check out Circle by rst, a C++ bare metal environment (with USB) for Raspberry Pi 1 & 2:
https://github.com/rsta2/circle

For more information about coding the ARM CPU please visit my webpage that I run with SimonB:
http://gbadev.org
http://forum.gbadev.org

Howto Compile:
All the code compiles into a single binary (kernel.img for Raspberry Pi or kernel7.img for Raspberry Pi 2) file.
Using FASMARM open up kernel.asm for Raspberry Pi or kernel7.asm for Raspberry Pi 2 & click the Run/Compile button.

Howto Run:
I only test with the latest bleeding edge firmware:
https://github.com/raspberrypi/firmware/tree/master/boot

You will need these 2 files:
bootcode.bin
start.elf

You will need to create a "config.txt" file that contains the lines:
disable_overscan=1
framebuffer_swap=0

Check http://www.raspberrypi.org/documentation/configuration/config-txt.md for more info about config options.
Check https://github.com/PeterLemon/RaspberryPi/tree/master/boot for the config.txt file.

Once you have all these files ready, you can copy them & a kernel.img (Raspberry Pi), or a kernel7.img (Raspberry Pi 2) file to the root of an SD card.

All of my demos use a maximum resolution of 640x480, they have been tested using composite & HDMI.

All sound demos output to the 3.5" Phone Jack. Thanks to ne7 for the sound sample.