Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sinanislekdemir/minik
Minik OS - Kernel with an Interpreted language for ATMega2560 and ESP32 boards.
https://github.com/sinanislekdemir/minik
arduino compiler esp32 esp32-wroom interpreter kernel programming-language
Last synced: 3 months ago
JSON representation
Minik OS - Kernel with an Interpreted language for ATMega2560 and ESP32 boards.
- Host: GitHub
- URL: https://github.com/sinanislekdemir/minik
- Owner: sinanislekdemir
- License: bsd-3-clause
- Created: 2021-11-26T23:17:16.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-04-08T07:26:23.000Z (over 2 years ago)
- Last Synced: 2023-08-14T14:11:21.881Z (over 1 year ago)
- Topics: arduino, compiler, esp32, esp32-wroom, interpreter, kernel, programming-language
- Language: C++
- Homepage: https://minik.16x4.com
- Size: 640 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Minik Os for mini(k) spaces
![example workflow](https://github.com/sinanislekdemir/minik/actions/workflows/build-test.yml/badge.svg)
https://minik.16x4.com
Minik OS is a binary format embedded operating system. Unlike RTOS(es),
Minik OS is not a framework. It's a compiled operating system, ready
to run on embedded devices.Curious to see it in action? Here is a video of Minik OS, running 3 different
programs in parallel plus having it's kernel source code reader and status
daemons on. [https://www.youtube.com/watch?v=5vTQgAibZtk](https://www.youtube.com/watch?v=5vTQgAibZtk)Minik is coded using C++ and Arduino Framework with the power of ESP32 bindings
and FreeRTOS.Minik is a multi-threaded operating system. Therefore, it can not be assumed
as a "Real Time" operating system because of it's internal task switches.On ESP32, a single mission critical task can be assigned to the second core.
Or tasks can be shared between cores.As of now all daemons run on CORE0 and tasks are assigned to Cores in turns.
So each turn will get (almost) equal number of tasks (programs).Minik OS includes an interpreted programming language called CManager. Syntax
of CManager can be called a "pseudo-assembler". It is a bit ezoteric. Primarily
because it is designed to run on 8bit small chips. Other interpreted languages
like micro-python requires a bit more processing power and ram area for compiling.You can see some examples of CManager in [scripts director.](https://github.com/sinanislekdemir/minik/tree/main/scripts)
Minik has internal daemons and tasks running within a semaphore. Daemons run before
the tasks.There are daemons for:
- Serial communications
- Interrupt handlerssinan islekdemir
[email protected]## Drivers
Not all drivers can fit into your small flash storage. You can define the drivers you need
inside `drivers.txt`. One driver name per line.Here is a full list of drivers:
```
WIFI
BLUETOOTH_SERIAL
BLUETOOTH
DISPLAY_SSD1306
SDCARD
```