Multitask kernel project for embedded systems
- ARMv8-A
- Raspberry Pi 3 (Broadcom's BCM2837 SoC, Four Cortex-A53 cores, 1GB RAM)
- Some GNU-Linux OS
- aarch64-linux-gnu-gcc (GCC for ARM64)
- Python 3
- qemu-system-aarch64 (QEMU for ARM64, just for kernel emulation)
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
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
- Filipe Chagas [https://github.com/filipechagasdev, [email protected]]
- 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...
- Leon de Boer [https://github.com/LdB-ECM, [email protected]]
Some code used here was taken and adapted from the Raspi3-kernel project (https://github.com/LdB-ECM/Raspi3-Kernel).
- Rene Stange [https://github.com/rsta2, [email protected]]
Some code used here was taken and adapted from the Circle project (https://github.com/rsta2/circle).