- Developed on bare metal for Raspberry PI4 B with Cortex A72 (ARM v8.A)
- Premptive Multitasking
- Interrupts (GIC400)
- Multicore
- Virtual memory & MMU
- Buddy Allocator
- Synchronization (ARM Spinlock)
- UART RX/TX
- Videocore VI Mailbox Interface
- Framebuffer (HDMI output)
Debugged on live hardware with OpenOCD + JTAGS + Olimex Tiny H (https://www.olimex.com/Products/ARM/JTAG/ARM-USB-TINY-H/)
Install openocd from sources with
./configure --enable-ftdi
I/O Through MiniUART to USB with minicom
sudo minicom -D /dev/ttyUSB0 --baudrate 11520
Running on 4 cores with parallel rendering and 2000 Drawing Tasks scheduled dynamically on the most available core
video_2023-03-14_17-59-56.1.webm
- Unix Pipes
- System calls
- Shell
- Users, Groups & Permissions
- EMMC Driver
- Custom filesystem
- ELF Loader
- Slab Allocator
- On Disk Paging
- Usermode Tasks
- Networking (Ethernet, ARP, UDP, DHCP)
- USB Driver
- (...)
[Work in progres...]