Skip to content

mfkiwl/RM-Scheduling

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

Rate-Monotonic Scheduler on Zynq (Standalone)

This project implements a Rate-Monotonic (RM) real-time scheduler on the ZedBoard's ARM Cortex-A9 processor. It uses a custom hardware timer and an interrupt-driven scheduler to execute periodic tasks according to their fixed priorities. Tasks with shorter periods receive higher priority. The implementation uses a lightweight standalone environment without an RTOS.

How RM Scheduling Works

  1. User enters execution time and period for each task.

  2. Tasks are sorted by period (shortest period = highest priority).

  3. Hyperperiod is computed using LCM of task periods.

  4. At every tick (timer interrupt), the scheduler:

    • Releases tasks whose period has arrived
    • Selects the highest-priority ready task
    • Runs it for one tick
    • Updates remaining execution time
    • Prints the schedule trace

Running the Project

  1. Use the given Hardware (.xsa) and build a standalone C application in Vitis.
  2. Import the files and setup Run configuration
  3. Program the FPGA with the given bitstream and run the application.
  4. Provide task parameters through Tera-Term with baud rate of 115200.

About

A lightweight Rate-Monotonic scheduler implemented on a standalone Zynq (Cortex-A9) system. It supports task creation, priority assignment based on period, hyperperiod computation, and tick-based execution using custom hardware timer interrupts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 100.0%