Giter VIP home page Giter VIP logo

mos's Introduction

mos

MOS, or Maintainable RTOS, is a simple and lightweight RTOS microkernel for ARM Cortex M that supports threading and IPC primitives.

It is a work in progress and is intended for "fun personal projects."

MOS was originally developed on a STMicroelectronics STM32F4 Discovery and has been tested on the following boards:

  • STM32F767ZI Nucleo-144 (ARM Cortex M7)
  • STM32L562 Discovery Kit (ARM Cortex M33)
  • STM32F4 Discovery (ARM Cortex M4F)
  • STM32G071RB Nucleo (ARM Cortex M0+)

Design Goals:

  • RTOS: Hard priorities, bounded execution and short critical sections.
  • Simple configuration with low use of conditional compilation (no config.h files).
  • Small code size (e.g.: minimal compiled size is ~5KB).
  • Baseline kernel is static with optional extensions.
  • Extensions include best-effort allocator and dynamic kernel extension.
  • Dynamic kernel extension supports thread-local storage.
  • Easily customizable.
  • Provide example BSPs and example applications.

Included Primitives:

  • Recursive mutex with priority inheritance.
  • Semaphores (counting / multi-bit binary).
  • Message queues (multi-priority).
  • SysTick-based timers.
  • Atomic operations.

Optional Modules:

  • Best-effort allocator with multiple non-contiguous region support.
  • Dynamic kernel extension with thread-local storage.
  • TrustZone security.
  • Shared context (cooperative multitasking where clients share same thread and message queue--for tiny footprints).
  • Command shell.

Supported toolchains / architectures:

  • GCC
  • ARM M0/M1/M0+ (Arch v6-M)
  • ARM M3/M4/M7 (Arch v7-M)
  • ARM M4F/M7F (Arch v7-M with hardware floating point using lazy stacking)
  • ARM M23/M33/M55 (Arch v8-M) - TrustZone context switches.

Features it probably WILL NEVER have:

  • Full MPU support
  • Non-ARM architecture support
  • Non-GCC toolchain support

mos's People

Contributors

mneedes avatar

Stargazers

 avatar  avatar  avatar

Watchers

 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.