- Notifications
You must be signed in to change notification settings - Fork0
A compact RTOS built for educational purposes.
License
NotificationsYou must be signed in to change notification settings
Sped0n/octos
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
OCTOS is a compact real-time operating system (RTOS) featuring a preemptive kernel and an O(1) scheduler.
Currently, it supports only the ARM Cortex-M4 processor, but the system is designed to be extensible (see
Core/Arch
).
- FreeRTOS-like preemptive scheduler
- Round-Robin within priority level
- "Cooperative" between priority level
- Support scheduler suspension
- Basic Task Management
task_create
,task_create_static
,task_delete
task_delay
,task_abort_delay
task_suspend
,task_resume
,task_resume_from_isr
task_yield
,task_yield_from_isr
- Python-like Sync Primitives
Sema_t
:Semaphore (ISR-compatible)Mutex_t
:Mutex (Support Priority Inheritance)Cond_t
:Condition (ISR-compatible)Barrier_t
:BarrierEvent_t
:Event (ISR-compatible)
- Fexlible Inter-task Communication
- Lightweight Task Notification (ISR-compatible)
- Message Queue (ISR-compatible)
- GNU Arm Embedded Toolchain
- CMake
- OpenOCD (Optional)
# Start from project root directorymkdir buildcd buildcmake ..# or `cmake --build . --target flash` (OpenOCD and ST-LINK required)cmake --build. --target octos
# Inside Build Directory# Open a gdb server at :3333 (OpenOCD and ST-LINK required)cmake --build. --target gdbhost# Inside project root directory# Try input `oinfo` and `otasks` in gdbarm-none-eabi-gcc -x .gdbinit
About
A compact RTOS built for educational purposes.