Echo OS: A Real Time Operating System

Hey everyone,

I’ve been working on Echo Os for several months now. Its my ‘learn zig’ project. I’m pretty happy with the progress I’ve made on it so I thought it was time to share it with others. Currently it only supports Zig 0.13.0, but I’m planning to move forward to 0.14.0 when its released next month.

Features

  • Preemptive priority base scheduling
    • 32 priority levels
    • Unlimited tasks per priority level
  • Mutexes
  • Semaphores
  • Message queues
  • Event groups
  • Software timers
  • ARMv6-M & ARMv7-M support
  • Zig package manager support

Echo OS pulls in the architecture specific files at comptime. This is based off of the cpu_model field in the target argument of b.addExecutable() in the parent zig.build.

The readme has a link to another repository for example projects. Currently there is just one example: a simple blinky project that runs on a STM32 Discovery board.

There is certainly more work to do on this project. Message queues and software timers need some more revisions. I’d like to add ARMv8-M & RISC-V support. Plus I’d like to see if I can improve the speed of the the scheduler and context switches. And thats just to name a few.

Constructive feedback is welcome!

10 Likes