MiROS
MiROS (Minimal Real-Time Operating System) for ARM Cortex-M
Install / Use
/learn @QuantumLeaps/MiROSREADME
Brought to you by:
What is it?
"MiROS" is a Minimal Real-Time Operating System (RTOS) kernel for ARM Cortex-M. It supports preemptive, priortity-based multithreading, fully compliant with RMA/RMS (Rate-Monotonic Analysis/Scheduling).
NOTE<br> MiROS is a teaching aid used in the "Modern Embedded Programming" video course on YouTube
The main goal of the MiROS kernel is to illustrate the concepts underlying Real-Time Operating Systems (RTOS). The aim here is simplicity and clear presentation of the concepts, but without dealing with various corner cases, portability, or error handling. For these reasons, the software is generally NOT intended or recommended for use in commercial\applications.
Supported Toolchains
MiROS is available for the following embedded toolchains:
- ARM/KEIL MDK (uVision)
- GNU-ARM (Makefile projects)
- IAR EWARM
Supported Embedded Boards
Currently, MiROS examples are available for the following embedded boards:
- EK-TM4C123GXL (TivaC LaunchPad, ARM Cortex-M4F)
- STM32 NUCLEO-L152RE (ARM Cortex-M3)
- STM32 NUCLEO-C031C6 (ARM Cortex-M0+)
Directories and Files
MiROS/
+---3rd_party/ - third-party software (needed in the examples)
| +---CMSIS/ - ARM CMSIS
| +---ek-tm4c123gxl/ - low-level code to support EK-TM4C123GX board
| +---nucleo-c031c6/ - low-level code to support STM32 NUCLEO LC031C6 board
| +---nucleo-l152re/ - low-level code to support STM32 NUCLEO L152RE board
|
+---examples/
| +---blinky_ek-tm4c123gxl/ - Blinky exammple for EK-TM4C123GX board
| | +---armclang/ - project for ARM/KEIL uVision with ARMCLANG
| | +---gnu/ - project for GNU-ARM with simple Makefile
| | +---iar/ - project for IAR EWARM
| |
| +---blinky_nucleo-c031c6/ - Blinky exammple for STM32 NUCLEO-C031C6
| +---armclang/ - project for ARM/KEIL uVision with ARMCLANG
| +---gnu/ - project for GNU-ARM with simple Makefile
| +---iar/ - project for IAR EWARM
| |
| +---blinky_nucleo-l152re/ - Blinky exammple for STM32 NUCLEO-L152RE
| +---armclang/ - project for ARM/KEIL uVision with ARMCLANG
| +---gnu/ - project for GNU-ARM with simple Makefile
| +---iar/ - project for IAR EWARM
|
+---include/ - include directory
| miros.h - MiROS API
+---src/ - MiROS source code
| +---armclang/
| | miros.c - MiROS implementation for ARMCLANG
| +---gnu/
| | miros.c - MiROS implementation for GNU-ARM
| +---iar/
| | miros.c - MiROS implementation for IAR EWARM
Building the Examples
MiROS comes with the "Blinky" examples for the boards listed above.
To build and run the examples, inside the "examples" directory select the "Blinky" version for your board and then, inside that sub-directory select the toolchain (ARMCLANG, GNU-ARM, or IAR). That sub-directory contains the project that you can open with the IDE (uVision or IAR). The GNU-ARM project consists of a simple Makefile, which you can run from the command-line.
Licensing
MiROS is licensed under the GPLv3 open source license.
Comments/Discussion
If you'd like to discuss MiROS or related subjects, plese use the "Issues" tab.
How to Help this Project?
If you like this project, please give it a star (in the upper-right corner of your browser window):
<p align="center"><img src="img/github-star.jpg"/></p>Contact Information
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
flutter-tutor
Flutter Learning Tutor Guide You are a friendly computer science tutor specializing in Flutter development. Your role is to guide the student through learning Flutter step by step, not to provide d
groundhog
400Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
workshop-rules
Materials used to teach the summer camp <Data Science for Kids>


