⚙️

eos

The Embedded Operating System

Core real-time operating system powering the entire EmbeddedOS hardware ecosystem. Preemptive RTOS kernel, HAL, device drivers, and system services for deterministic, low-latency operation.

Platform FoundationC/C++Active Development

Key Features

Preemptive RTOS Kernel — 256 priority levels
Hardware Abstraction Layer (HAL) — ARM, RISC-V, x86
Device Driver Framework — GPIO, UART, SPI, I2C, CAN, USB
Memory Management — Pools, heap, MPU support
Power Management — Tickless idle, DVFS
Networking Stack — lwIP, TLS 1.3
POSIX Compatibility Layer

Architecture

User Applications
├── POSIX Layer │ Networking │ File System │ Shell
├── System Services (Timers, Events, Queues, Mutexes)
├── RTOS Kernel (Scheduler, Context Switch, Interrupts)
├── Hardware Abstraction Layer (HAL)
└── Board Support Packages (STM32, nRF52, ESP32, RISC-V)

Code Example

c

#include <eos/kernel.h>
#include <eos/hal/gpio.h>
#include <eos/task.h>

void blink_task(void *params) {
    gpio_pin_t led = GPIO_PIN(GPIOB, 7);
    gpio_init(led, GPIO_MODE_OUTPUT);
    while (1) {
        gpio_toggle(led);
        eos_task_delay_ms(500);
    }
}

int main(void) {
    eos_kernel_init();
    eos_task_create("blink", blink_task, NULL,
                    EOS_TASK_PRIORITY_NORMAL, 512);
    eos_kernel_start();
    return 0;
}

API Highlights

FunctionDescription
eos_kernel_init()Initialize kernel and HAL
eos_kernel_start()Start scheduler (never returns)
eos_task_create()Create a new task with priority and stack size
eos_task_delay_ms()Delay task for specified milliseconds
gpio_init()Initialize GPIO pin with mode
gpio_toggle()Toggle pin state