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
- 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
The docs/ directory contains the STM32F4 reference and programming manual PDFs, and docs/blogs/ holds per subsystem walkthroughs and explanations
arm-none-eabi-gccmakeqemu-system-armopenocd
On Debian / Ubuntu:
sudo apt install gcc-arm-none-eabi make qemu-system-arm openocdmake # 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 cleanThe 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
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.
