Skip to content

Repository files navigation

AstraRTOS

Status Architecture Target Toolchain License

AstraRTOS is a small kernel for ARM Cortex-M, being built from scratch. The current target is the STM32F429ZI Discovery board (Cortex-M4, ARMv7-M). It provides a preemptive, priority-scheduled environment for tasks running on a single MCU

Features

  • Priority-based preemptive scheduler
  • Tasks, delays, counting semaphores, mutexes, software timers
  • Dynamic memory
  • GPIO, USART drivers, RCC clock control
  • Runs on real hardware and under QEMU

Documentation

The docs/ directory contains the STM32F4 reference and programming manual PDFs, and docs/blogs/ holds per subsystem walkthroughs and explanations

Toolchain

  • arm-none-eabi-gcc
  • make
  • qemu-system-arm
  • openocd

On Debian / Ubuntu:

sudo apt install gcc-arm-none-eabi make qemu-system-arm openocd

Build

make                       # build/astra.elf, build/astra.bin
make SOURCE=path/to/file.c # build any file in the directory
make qemu                  # run under qemu-system-arm
make flash                 # openocd flash via stlink
make clean

The application entry point is app/main.c. To build any sample program from the samples/ directory instead, pass the file path to the SOURCE variable during compilation, and then rebuilding produces a runnable image, for more details on running a sample refer this

Contributing

See CONTRIBUTING.md for the commit message format, branch naming convention, and area prefixes. All changes must compile cleanly under make clean && make before submission.

About

Minimal preemptive RTOS for ARM Cortex-M4, written from scratch in C

Resources

Contributing

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages