AVR8CS (Control System) mini Operating System kernel

AVR8CS is a mini Operating System kernel for AVR8 based embedded devices.

Version: b2017-0121

ACR8CS Capable to run multiple sub-routines for Atmels AVR8 MCU. The default minimal firmware setup requires around ~2.1kB of Flash and ~0.2kB of SRAM.

Currently following functionality is supported:

Hardware requirments:

The watchdog will be triggered on 2 seconds timeout. Watchdog is reseted when the context is switched. If process runs in cooperative mode, the context switch will be avoided, and watchdog will continue counting. If process does not release control in 2 seconds, the watchdog will generate interrupt and force process to release control by setting flag - "ready to release", so on the next timer tick, the context will be switched.

The default OCR0A interrupts is set to 1kHz - is the default "tick" frequency. So, for each process gets 1kHz in a loop.

The CPU time allocation is considered arbitrary equal, however, for the CPU time allocation the responsibility is placed on programmer.

The user code located in subroutines (processes) can block interrupts using CRITICAL_SECTION() macro, which is the same as ATOMIC_BLOCK(ATOMIC_RESTORESTATE).

Known Bugs

Known issues



Youtube link: Demonstration #1



Github project home page