Skip to content

( ⚡ Farad OS ) Multitask kernel project for embedded systems

License

Notifications You must be signed in to change notification settings

FilipeChagasDev/farad-kernel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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).

About

( ⚡ Farad OS ) Multitask kernel project for embedded systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published