Git Product home page Git Product logo

miros's Introduction

Brought to you by:

Quantum Leaps

What is it?

GitHub release (latest by date) GitHub

"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
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.

MiROS on YouTube: RTOS part-2

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)

  • STM32 NUCLEO-L152RE

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-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-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):

GitHub star

Contact Information

state-machine.com

miros's People

Contributors

quantum-leaps avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.