/ README.md
README.md
1 # BeeBS 2 BeeBS (or Beebs) aims to be a simple operating system 3 for the Raspberry PI SBC. Its main purpose is to support the education of 4 computer science students. 5 6 ## Prerequisites 7 8 For cross-compiling on Debian-based Linux-Systems: 9 10 $ apt install gcc-arm-none-eabi gdb-multiarch 11 12 ## Compile kernel (for target ARMv6 like Raspberry Pi 1) 13 $ cd nucleus 14 $ make TARGET=armv6 15 16 Copy beebs.img together with the contents of misc/sd/ on a FAT32 formatted 17 SD/SDHC card and use it to boot your Raspberry Pi (currently only Model 1B+ known 18 to work). 19 20 ## Debug Kernel 21 22 Note: currently, kernel debugging is not possible as BeeBS is not compatible 23 with QEMU yet (raspi support in QEMU seems incomplete). 24 25 * Start QEMU with -s -S flags (qemu.sh) 26 * Start gdb with arm-none-eabi-gdb 27 28 Within gdb: 29 30 target remote localhost:1234 31 file nucleus/nucleus.img 32 break kmain 33 continue 34 35 ## Links 36 Useful links for operating system development especially for the Raspi. 37 * https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html 38 * https://www.glennklockwood.com/embedded/bmc2835-gpio.html 39 * https://elinux.org/BCM2835_datasheet_errata 40 * https://github.com/raspberrypi/firmware/wiki/Mailboxes 41 * https://github.com/Zeke-OS/zeke/blob/master/kern/hal/bcm2835/bcm2835_mailbox.c 42 * https://github.com/werner-matthias/aihPOS/blob/master/kernel/src/debug/framebuffer.rs 43 * https://wiki.osdev.org/Raspberry_Pi_Bare_Bones 44 * https://elinux.org/RPi_Framebuffer 45 * https://github.com/bztsrc/raspi3-tutorial/tree/master 46 * https://www.raspberrypi.com/documentation/computers/config_txt.html 47 * https://stackoverflow.com/questions/26564178/reading-from-uart-rxd-of-the-raspberry-pi-in-assembly 48 * https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html 49 * http://www.mathematik.uni-oldenburg.de/personen/tdm/VortragsAbstracts/Schmale/SRT-Division-korrigiert.pdf 50 * https://azeria-labs.com/writing-arm-assembly-part-1/ 51 * https://www.valvers.com/open-software/raspberry-pi/bare-metal-programming-in-c-card/