smx® is a hard-real-time multitasking kernel for embedded systems. It offers many features to permit using slower processors and less memory, thus reducing product cost. This is becoming increasingly important as the embedded industry shifts to SoC solutions and more consumer-oriented products.


  • Unique, 3-level application structure:
    • background tasks
    • foreground tasks (lsr’s)
    • isr’s
  • Minimal no interrupt latency
  • Fast task switching
  • Safe messaging via exchanges
  • Preemptive, round-robin, and timeslice scheduling
  • Multiple tasks per priority level
  • Dynamic priorities
  • Hooking of custom task entry and exit routines into scheduler
  • Scheduler locking
  • Small memory footprint
  • Dynamic objects
  • Protected heaps
  • Fast and standard block pools
  • Better stack sharing model than OSEK
  • Message priorities and priority passing
  • Client/Server messaging
  • Pipes and buckets for easy I/O integration
  • C++ support
  • Timeouts on all task waits
  • Cyclic and one-shot timers directly launch foreground tasks for tight timing control
  • Good selection of third-party tools supported
  • Task-aware debugging
  • Used in hundreds of applications

smx is delivered in pre-compiled library form with startup platforms. Source code is available separately. smx offers full support for the most popular C/C++ compilers and assemblers, and it is one of only a few kernels to provide a C++ class library (see the smx++ brochure). smx is ROM’able for standalone environments. It supports several different processor types (see processor-specific smx brochures) and provides many features to facilitate development for each processor type.

smx has been commercially available for over 12 years and has been used in hundreds of applications. During this time, it has steadily evolved into a better and better kernel. Today, smx is reliable, robust, and highly capable. It is an optimun choice for demanding, trouble-free use.

More info »