/ 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/