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.
-
User enters execution time and period for each task.
-
Tasks are sorted by period (shortest period = highest priority).
-
Hyperperiod is computed using LCM of task periods.
-
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
- Use the given Hardware (.xsa) and build a standalone C application in Vitis.
- Import the files and setup Run configuration
- Program the FPGA with the given bitstream and run the application.
- Provide task parameters through Tera-Term with baud rate of 115200.