stmos
stmos is an operating system for STM microprocessors. It aims to support (or be able to support) all STM Cortex-M processors.
Features:
- Unprivileged code execution
- ELF loading and execution (loads an init from the initrd)
- Near-full C standard library support for loaded ELFs
- libgpio: GPIO access for loaded ELFs
Currently supported processors:
- STM32L476RG (board: NUCLEO-L476RG)
building
To build stmos, you'll need the following programs:
- The arm-stmos toolchain (see the
arm-stmos
folder) - openocd
- gdb (with multiarch support)
To compile stmos simply run make
(-j option supported). To upload, use run.sh
to start openocd/gdb; do lo
to load stmos, and c
to run it.
notes
Only the initrd works right now in regards to filesystem access. Files in the folder src/initrd/files
are put into the initrd. C source files in src/initrd
are compiled with libgpio, placing the program in src/initrd/files
.
What's next for stmos?
- SD card support
- Display support (ILI....)
- Script program support (a shell like sash, maybe lua)
- More ELF work (better execve, signals?, etc.)
Description
Languages
C
85.1%
Makefile
8.9%
Shell
2%
C++
1.7%
Assembly
1.5%
Other
0.8%