Synopsis

scmRTOS is a free tiny preemptive Real-Time Operating System intended for use with Single-Chip Microcontrollers.

scmRTOS is capable to run on small uCs with as little amount of RAM as 512 bytes. The RTOS is written on C++. All source code is available. Five target platforms are supported for now:

  • MSP430 (Texas Instruments);
  • AVR (Atmel);
  • Blackfin (Analog Devices);
  • ARM7;
  • FR (Fujitsu).

Features:

  • Preemptive multitasking.
  • Up to 31 user processes (tasks).
  • Fast interprocess program control flow transfer:
    • MSP430: 45-50 us @5MHz.
    • AVR: 38-42 us @8MHz.
    • Blackfin: 1.5 us @200 MHz.
    • ARM7: 5us @50 MHz (ARM mode), 8 us @50 MHz (Thumb mode).
    • FR: 10 us @32MHz.
  • Low Resource Requirements:
    • Code: from about 1 kilobyte (depend on application and target platform).
    • Kernel Data: 8 + 2*Process Count.
    • Process Data: 5 bytes.
  • Supports separate return stack (required for IAR EW AVR).
  • Two methods of program control flow passing:
    • Direct context switcher call.
    • Software Interrupt context switch.
  • Interprocess communication:
    • Fast Event Flags (binary semaphores).
    • Mutual Exclusion Semaphores (Mutexes).
    • Byte-wide Channels (queues of "raw" data).
    • Arbitrary-type Channels (queues of arbitrary-type objects).
    • Messages.
  • Optional software switch on separate ISR stack on some platforms.
  • Support of various target hardware features such as hardware shifters etc., for more efficiency.

See User's Manual and other documentation for more details.