An educational, lightweight micro-operating system engine written in C++ for the Arduino Uno (ATmega328P). It emulates a 32-bit execution environment and provides a multi-mode command-line interface (CLI) to interact directly with hardware registers and persistent EEPROM storage. π
- βοΈ Multi-Mode Engine: Toggle between
MODE_CONSOLE(standard user space),MODE_SETUP(system configuration), and Root Access. - πΎ Persistent Storage: Native integration with hardware EEPROM to save localization and environment variables.
- π§ Optimized Memory Footprint: String literals are strictly mapped to Flash Memory using the
F()macro to preserve the ATmega328P's limited 2KB SRAM. - π¨ ANSI Color Support: Built-in support for terminal escape sequences (Green/White themes).
To ensure proper compilation without toolchain conflicts, organize your project workspace as follows:
π ArduinoDOS/
βββ π System.ino # π§ Main core execution script
βββ π System.h # βοΈ Global OS state headers and enums
βββ π EEPROM.h # πΎ High-level Arduino EEPROM class mapping
βββ π stdint.h # π’ Exact-width integer definitions (32-bit engine)
βββ π System.json # π Project metadata and configuration manifest
βββ π avr/
βββ π .io # π Deployment anchor file
βββ π eeprom.h # β‘ Low-level builtin hardware macros
βββ π stddef.h # π Standard size types and definitions
---
## βΉοΈ Additional Documentation
Need help or troubleshooting? Check out the [HELP.md](HELP.md) guide for more details.