Atomthreads is a free, lightweight, portable, real-time scheduler for embedded systems.

It is released under the flexible, open source BSD license and is free to use for commercial or educational purposes without restriction.

It is targeted at systems that need only a scheduler and the usual RTOS primitives. No file system, IP stack or device drivers are included, but developers can bolt on their own as required. Atomthreads will always be a small number of C files which are easy to port to any platforms that require threading by adding a simple architecture-specific file.



  • OS Features
    • Preemptive scheduler with 255 priority levels
    • Round-robin at same priority level
    • Semaphore
    • Mutex
    • Queue
    • Timers
  • Lightweight: the entire operating system fits into a few C files
  • Highly portable ANSI C code not tied to any compiler
  • Easy to read, well-documented, doxygen-commented code
  • Can be ported to any CPU architecture with a single architecture-specific module
  • Automated test suite proves reliable kernel operation
  • Free and flexible open source, BSD-licensed code
  • Readable code provides a good platform for learning RTOS internals
  • For a more complete feature list, see the Features page.

Supported CPU Architectures

To prove the lightweight and portable nature of Atomthreads, ports have been released for a range of architectures from small 8-bit microcontrollers to larger 32-bit processors.

CPU ArchitectureCompiler ToolchainPort Documentation
AVR/ATmegaGCC[View Documentation]
STM8/STM8SCosmic, IAR, Raisonance, SDCC [View Documentation]
DaVinci DM365/DM368 (ARM9)GCC 



All source is documented using Doxygen. Generated documentation can be found here:

To find out more about the internals of Atomthreads, and to learn how to port it to your target architecture, read the Porting Guide.

Syndicate content