Skip to content

luyaohan1001/YesRTOS

Repository files navigation

YesRTOS - A Real-Time Operating System

alt text

AI art generated with Magic Studio

Goal of the Project

  • Lightweight and portable real time operating system.

Language

  • Modern C++, C11, and GNU ARM assembly.

Build System

  • CMake, Make

Environment / Tool Chain

  • VSCode
  • Clangd
  • OpenOCD
  • GNU ARM Toolchain
  • PlantUML
  • Doxygen
  • Cppcheck
  • QEMU

Tracing

  • ARM ITM/TPIU

YesRTOS Architecture Diagram

alt text

Design Phase of YesRTOS

Phase 0

  • Round-Robin Scheduler
  • Cooperative Thread (no preemption)
  • Context Switch

Phase 1

  • Timeslice
  • Memory Management
  • Preemptive Thread
  • Priority Scheduler

Phase 2

  • Profiling Interface
  • Software Architecture Layout

Phase 3

  • Spinlock
  • Mutex
  • Semaphore

Phase 4

  • Priority Inheritance
  • Priority Ceiling
  • Message Queue
  • Exception Handling

Phase 5

  • Other advanced topics

Intended Application in Future

  • ⌚️ IoT Devices
  • 🚇 Automotive Systems
  • 👨‍🏭 Industrial Automation
  • 🏥 Medical Devices
  • 🎮 Consumer Electronics

Phase 0 Demo

alt text CooperativeMultitaskingDemo.mp4

Compilation

Follow these steps to compile this project.

1. mkdir build
2. cd build
3. cmake ..
4. make -j8

To flash to platform using OpenOCD, use the following command:

make flash

About

Build an RTOS from scratch, yes!

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published