Skip to content

Latest commit

 

History

History
91 lines (61 loc) · 2.26 KB

README.md

File metadata and controls

91 lines (61 loc) · 2.26 KB

Version Compiler License Language

Farad Kernel

Multitask kernel project for embedded systems

Supported Hardware

Architectures

  • ARMv8-A

Computers

  • Raspberry Pi 3 (Broadcom's BCM2837 SoC, Four Cortex-A53 cores, 1GB RAM)

Build/Debug dependencies

  • Some GNU-Linux OS
  • aarch64-linux-gnu-gcc (GCC for ARM64)
  • Python 3
  • qemu-system-aarch64 (QEMU for ARM64, just for kernel emulation)

Build

You need to enable execute permissions for the script files:

chmod u=rwx,g=rw,o=r init.sh clear.sh qemurpi3.sh

Right after cloning the repository, if the bin and obj directories do not exist, the following command must be executed:

./init.sh

The following command compiles the kernel and generates the kernel8.img file in the bin directory:

python3 build.py

The following command starts the emulation:

./qemurpi3.sh

Debug

You need to enable execute permissions for the script files:

chmod u=rwx,g=rw,o=r init.sh clear.sh qemurpi3.sh

Right after cloning the repository, if the bin and obj directories do not exist, the following command must be executed:

./init.sh

The following command compiles the kernel and generates the kernel8.img file in the bin directory with debug features enabled and starts qemu:

python3 debug.py

Project Owner

Features

  • UART I/O (done at v0.0.1)
  • Physical memory pages alloc-free (done at v0.0.2)
  • PageTable create-delete-map-unmap (done at v0.0.3)
  • PageTable enable-switch (done at v0.0.4)
  • Kernel virtual segment (done at v0.0.8)
  • Kernel heap malloc-free (done at v0.0.8)
  • Other features...

Credits

Some code used here was taken and adapted from the Raspi3-kernel project (https://github.com/LdB-ECM/Raspi3-Kernel).

Some code used here was taken and adapted from the Circle project (https://github.com/rsta2/circle).