Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eantcal/mipos
Multum In Parvo Operating System is a cooperative multitasking RTOS designed for single-chip micro-controllers with severely limited RAM (e.g. less than 256 bytes) and ROM.
https://github.com/eantcal/mipos
c-language educational-project firmware low-level-programming microcontroller rtos
Last synced: 29 days ago
JSON representation
Multum In Parvo Operating System is a cooperative multitasking RTOS designed for single-chip micro-controllers with severely limited RAM (e.g. less than 256 bytes) and ROM.
- Host: GitHub
- URL: https://github.com/eantcal/mipos
- Owner: eantcal
- License: mit
- Created: 2017-08-16T20:19:04.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-06-03T14:49:22.000Z (5 months ago)
- Last Synced: 2024-09-30T01:05:06.462Z (about 1 month ago)
- Topics: c-language, educational-project, firmware, low-level-programming, microcontroller, rtos
- Language: C
- Homepage: https://www.eantcal.eu/home/mipos
- Size: 1.69 MB
- Stars: 11
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
![mipOS Logo](mipos_pictures/mipos.png)
| Linux | [![Linux Build](https://travis-ci.org/eantcal/mipos.svg?branch=master)](https://travis-ci.org/eantcal/mipos) |Multum In Parvo Operating System is a cooperative multitasking RTOS designed for single-chip micro-controllers with severely limited RAM (e.g. less than 256 bytes) and ROM. It provides the flexibility of an RTOS in low-cost embedded designs.
System-On-Chip (SoC) programmers can choose mipOS for its small, fast and royalty-free benefits.mipOS manages tasks, providing mutual exclusion, signals, message queues, memory management, malloc, memory pools, timers.
Optional modules include: command line support, file system and stdio support.![mipOS Architecture](mipos_pictures/miposarc.png)
mipOS is designed to be as compact as possible for the target architecture. Its small footprint enables use in devices with limited memory capacity, including on-chip in SoC implementations, and that reduces power demands, extending battery life.
Small size also makes mipOS easy to understand and use. Computer science students can enhance their understanding of a simple OS and gain valuable practical experience modifying it, for example introducing new features.
mipOS is highly portable: it is written mainly in C programming language.
mipOS is free for any use.It is also royalty-free, ideal for applications with high-volume production needs.
The original design and the source code was published in an article for the magazine Computer Programming where the internals of a portable and scalable kernel for microcontrollers with severely limited resource are described.
mipOS has been tested on Intel x86 chip, STMicroelectronics® ST7 microcontrollers, STM8 microcontroller and STM32 32bit, ARM-Cortex M3 microcontroller families.
![mipOS running in a evaluation board](mipos_pictures/mipos2.jpg)
See also: [https://www.eantcal.eu/home/mipos](https://www.eantcal.eu/home/mipos).
![mipOS running in a evaluation board](mipos_pictures/miposIDE.jpg)
mipOS can be executed on Windows™ or Linux user-space process for simulation purposes (both Microsoft® Visual Studio™ and GCC compilers are supported).
mipOS is delivered in fully documented source code form.To build the examples on Linux (target: ``simu``) you might do the following steps:
- Make sure you have installed gcc multilib (on Ubuntu you can install it by using ``sudo apt-get install gcc-multilib``)
- Go to mipos/examples directory
- Create a new directory (e.g. ``md build``)
- Enter new directory (e.g. ``cd build``)
- Run ``cmake .. && make``In ``build`` several binaries will be created with prefix ``example-``.
For example, if you run ``./example-filesystem``, will be loaded mipos within a linux process, it will mount a disk image containing two files, as shown in the following demo:```
~/repos/mipos/examples/build$ ./example-filesystemmipOS v.1.99 - (c) 2005-2017 [email protected] console
Compile date/time: Dec 27 2020 00:33:50 - opt. mods:
mipos_console
mipos_fs
mipos_stdio
mipos_mm
mipos_malloc
mipos_mpoolmipOS>help
help - shows this list
ver - shows mipOS version
dump [,[,[]] - dump a memory area
patch - set a byte at address
ps - shows the list of tasks
freeze - freezes a task
unfreeze - unfreezes a task
delete - delete a task
signal - set a signal
ls - shows list of files
cat - shows list and content of filesmipOS>ls
Volume label RAMDISK
test1 60 bytes
test2 60 bytesmipOS>cat test1
Volume label RAMDISK
test1 60 bytes
0123456789abcdefghijklmnopqrstuvwxyz0123ABCDEFGHIJKLMNOPQRST
test2 60 bytes
9876543210ABCDEFGHIJKLMNOPQRSTUVWXYZ0123abcdefghijklmnopqrstmipOS>
```