Skip to content

evelin1031/real-time-systems-rpi3

Repository files navigation

Real-Time Scheduling on Raspberry Pi 3

This repository contains the practical work completed during TP6, TP7, and TP8 of the Real-Time & Embedded Systems course. The project focuses on real-time scheduling, from simulation in Heptagon to execution on a bare-metal Raspberry Pi 3 (AArch64).


Each directory includes:

  • The Heptagon source code
  • Generated C code
  • Bare-metal Raspberry Pi code (C + assembly + runtime integration)
  • Scripts and build files

Single-Core Real-Time Scheduler

Goal: Discover Heptagon, simulate periodic tasks, states, deadlines, and generate C code.

  • Periodic activation
  • Task state automata (Waiting / Ready / Running)
  • A mono-processor scheduler in Heptagon
  • Simulation on PC through generated C code

Multi-Core EDF Scheduler

Goal: Run real scheduling logic on 2 cores of the Raspberry Pi 3.

  • A task scheduler running on CPU0
  • A task executor running on CPU1
  • Shared memory between cores
  • Synchronisation using barriers and custom primitives
  • Console output via bare-metal runtime

Raspberry Pi 3 Bare-Metal Scheduler

Goal: Implement real scheduling policies on Raspberry Pi 3.

Two schedulers are implemented:

✔️ Rate Monotonic (RM)

  • Static priority based on task period
  • Lower period → higher priority

✔️ Earliest Deadline First (EDF)

  • Dynamic priority
  • Task closest to deadline is chosen

Also:

  • Task execution ("left" field)
  • Periodic releases (first_start, period)
  • Deadline check + deadline miss reporting
  • Execution on multicore
  • Hardware output via console_puts

Authors

  • Eve Lin
  • Doha Bentaoussy

Second-year students in Embedded Systems Engineering EIDD – École d’Ingénieurs Denis Diderot

This project was developed as a team project in an academic context.


License & Usage

This repository is shared strictly for educational and demonstrative purposes related to the Real-Time Systems course at EIDD

You are allowed to:

  • explore and study the Heptagon models, schedulers, and Raspberry Pi code,
  • use the repository as a reference to better understand multicore scheduling and embedded development,
  • reuse ideas or patterns for learning.

You are not allowed to:

  • submit this code (in whole or in part) as your own work for any graded TP, project, or exam,
  • reproduce this repository in another academic context without authorization,
  • copy the scheduler implementation, structure, or logic for assignments that must be done individually or by your own team.

This project reflects the work done during our lab sessions and is published to help other students understand real-time scheduling concepts — not to replace their own work.

Academic integrity must be respected at all times.

About

Real-time schedulers (EDF & RM) implemented in Heptagon with PC simulation and bare-metal execution on Raspberry Pi 3. Educational project from EIDD.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors