Features

From scmRTOS

Jump to: navigation, search

scmRTOS stands for Single-Chip Microcontroller Real-Time Operating System.

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.

Here's a list of supported platforms for now:

  • MSP430 (Texas Instruments);
  • AVR (Atmel);
  • Blackfin (Analog Devices);
  • ARM7:
    • AT91SAM7;
    • LPC2xxx;
    • ADuC70xx;
  • Cortex-M3:
    • STM32F1XX;
    • STM32F2XX;
    • LPC17XX;
  • Cortex-M4:
    • STM32F4XX;
  • STM8 (STMicroelectronics).

See Ports for details.

Features

  • Preemptive multitasking;
  • Up to 31 user processes (tasks);
  • Fast interprocess program control flow transfer:
MSP430 45-50 us @ 5 MHz
AVR 38-42 us @ 8 MHz
Blackfin 1.8 us @ 200 MHz
ARM7 (ARM mode) 5 us @ 50 MHz
ARM7 (Thumb mode) 8 us @ 50 MHz
Cortex-M3 3 us @ 72 MHz
  • 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.
  • Kernel extensions
    • Base for interprocess communication types (user defined, also);
    • Process Profiler.
  • 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.
  • Debug features
  • Optional software switch on separate ISR stack on some platforms;
  • Support of various target hardware features such as hardware shifters etc., for more efficiency.

Further reading

  • See Ports for target-specific details;
  • See Releases to get scmRTOS release for particular target;
  • See Documentation for more info.
Personal tools