⚙️
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
| Function | Description |
|---|---|
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 |