Micrium OS v5

Micrium OS is a full-featured RTOS featuring TCP/IP, USB Host, USB Device, CAN bus, Modbus, File System, and Graphical User Interface.


  • Improved folder structure
    • Only two or three include paths needed, no matter the number of stacks

    • Now more consistent across all stacks

    • Better separation of public/private APIs

    • Increase visibility and accessibility of examples

  • New error code management
    • Single error type across all products
    • Configurable error type which can include only the error code or information such as the line number, function name or file name where the error has been set
    • Addition of descriptive strings for each error code
    • Legacy mode available. Old code still works, but not any new feature
  • Assertions
    • Assertions now available for customer use and used by the stacks
    • Two levels: debug, more as an argument or configuration checking method, can be disabled; critical, cannot be disabled, triggered when system cannot recover from critical problem (enum out of range, error when releasing a previously acquired lock, etc.)
    • Possibility to configure behavior independently on both debug and critical asserts failures
  • Logging
    • Standard logging module used by every product
  • Run-time configurable
    • Several compile-time configuration now run-time instead
    • Every stack providing same method/functions to allow application to configure them (what is configured is different, but the method has been standardized across all stacks)
  • Default configuration
    • Default run-time configurations for as much configuration values as possible
    • Standardized method and naming across all stacks
    • Easy to modify the default values to fit the application's needs
    • Can be put in ROM, if needed


  • Grouped initialization for LIB Mem, LIB Math, KAL, etc.
  • Creation of Memory Segments at compile-time

File System

  • New storage layer to allow raw accesses to media
    • Can be compiled without the file system core layer allowing a possible integration with third-party file systems
    • Media polling task to allow removable media insertion/removal detection. Callbacks available to notify application upon removable media detection
  • New scalable ordered write-back cache
    • Possibility to assign a cache instance to a specific media or a media group permitting better RAM usage
  • New SCSI media driver (previously known as MSC driver requiring a USB Host stack)
    • SCSI driver is agnostic of lower transport layer. Interfaces to USB Host. Could interface to other transport stacks supporting SCSI protocol
  • Improved thread-safety
  • Improved FAT-journaling mechanism
  • Decreased RAM footprint


  • Reduced data and code space usage
  • Common interrupt controller interface


  • Single task for TPC/IP core instead of 3
  • DHCP client refactoring
  • Network interface setup simplified

USB Device

  • New driver for Cadence USBFS Dev IP
  • New driver for Synopsys Design Ware Core 2 High-Speed IP
  • Improved mechanism to share storage media between MSC class and embedded application
  • Better integration between Micrium OS File System and the MSC class

USB Host

  • Support for multiple USB Device configuration
  • Extended support of composite (multi-function) devices
  • Extended control on device states (disconnect, reset)
  • Improved thread-safety
  • Support for Silicon Labs and Prolific USB-to-serial adapters
  • Added Android Accessory class driver
  • Support for MSC devices with multiple Logical Unit and removable media
  • Better integration between Micrium OS File System and the MSC class
  • New callbacks to notify application of events (device connected, connection fail, etc) and application now has the opportunity to decline connection of certain devices
  • More flexible configuration of memory usage
  • Improved support and performance of Non OHCI/EHCI based controllers. Eliminates the limitation in the quantity of endpoints available
  • Added possibility to un-initialize the module
  • Decreased RAM footprint

« Back to the Micrium Community Blog