Real-time Kernel
Developed a real-time kernel capable of admission control, task scheduling, isolation, and synchronization.

Additionally designed a PCB shield in EagleCAD for an STM32 Nucleo Board (ARM Cortex M4) to attach peripherals (e.g. h-bridge and servo motoro). The kernel ran on the STM bare-metal (with boot.S loader).


This kernel implemented mutexes and the Immediate Priority Ceiling Protocol (IPCP), and used the Memory Protection Unit (MPU) to protect kernel memory when in user mode, and to isolate a thread’s stack from other threads.


The lab was divided into three main parts:
  • (i) Context switching and task management.
  • (ii) Fixed priority rate-monotonic scheduling.
  • (iii) Isolation and real-time synchronization.

[source code]
PCB Designed with EagleCAD