Skip to content

minimalist implementation of an rtos for arm cortex-m

Notifications You must be signed in to change notification settings

irvingywang/rtos

Repository files navigation

Minimalist RTOS implementation for ARM Cortex-M written in C23 and assembly.

Source code:

  • rtos.c source code
  • rtos.h header file
  • context_switch.s assembly implementation of context switching
  • syscalls.c system call implementations
  • main.c example application for stm32g474

API:

  • define_task() define a new task
  • create_task() create and register a task
  • rtos_start() go!
  • rtos_delay() delay task execution by milliseconds

Implementation details:

  • multi-priority round-robin scheduler
  • task premption on 1ms quantum via SysTick interrupt
  • context switching via PendSV interrupt (lowest priority)
  • O(1) task creation, selection, and deletion via circular double linked list

About

minimalist implementation of an rtos for arm cortex-m

Topics

Resources

Stars

Watchers

Forks

Languages