Phone - Australia: 1300 553 313
Hotline - New Zealand: 0800 450 168

CMX Systems Products

Small and fast real-time software, including real-time operating systems (RTOS), TCP/IP stacks and C compilers for embedded systems designers.

Since its inception in 1990, CMX Systems has focused on providing its customers with all of the tools needed to program their embedded applications. The company’s core business is to develop and support real-time, multi-tasking operating systems (RTOS), TCP/IP stacks, Flash File Systems, USB stacks and the CANopen stack for a wide variety of 8-bit, 16-bit, and 32-bit microcomputers, microprocessors, and digital signal processors. The company’s RTOSes support more than 50 processor families and over 30 C-compiler vendors. CMX also offers the tiny CMX-MicroNet, which is a unique TCP/IP stack that is targeted for 8-, 16-, 32-bit and DSP processors with limited ROM and/or RAM and CMX-TCP/IP, a full-featured TCP/IP stack designed for 16-, 32-bit and DSP processors and CMX-INet-Plus for IPv4/IPV6 networking applications. CMX additionally offers five different Flash File Systems to best meet the memory management needs of embedded developers. CMX-USB is offered for designers wishing to add USB connectivity to their products.


CMX Real-Time Multi-Tasking Operating System products support MOST 8, 16, 32 and 64 bit embedded Microcontrollers, Microprocessors and DSPs.

  • Supports nested interrupts
  • No royalties on embedded code
  • All source code supplied
  • Extremely fast context switch times
  • Very low interrupt latency times
  • Several C vendors supported
  • Scheduler and interrupt handler written in assembly for speed and optimisation
  • All CMX functions contained in library
  • User configurable
  • Task management
  • Event management
  • Timer management
  • Message management
  • Circular queue management
  • Resource management
  • Semaphore management
  • Fixed block memory management
  • Specialised UART management
  • Automatic power down management
  • Full pre-emption and ability to also have cooperative and time slice scheduling

Create a task.
Remove a task.
Start a task.
Suspend a task, with time-out provision.
Wake a suspended task.
Forcefully wake a task.
Change a task's priority.
Terminate a task early.
Do a cooperative rescheduling.
Disable task scheduling.
Enable task scheduling.

Wait on event(s), with time-out provision.
Set an event.
Clear an event.

Get a message.
Wait for a message, with time-out provision.
Send a message.
Send a message, wait for reply.
Wake task that sent message, if waiting on reply.
Wait on Mailbox(s), with time-out provision.

Create a circular queue.
Reset queue to empty.
Add to top of queue.
Add to bottom of queue.
Remove from top of queue.
Remove from bottom of queue.

Create a cyclic timer.
Change a cyclic timer event parameters.
Start a cyclic timer.
Restart a cyclic timer.
Restart a cyclic timer, with new initial time period and/or new cyclic time period.
Stop a cyclic timer.

Create a fixed block pool.
Request free block from pool.
Release block back to pool.

Get a resource.
Reserve a resource, with time-out provision.
Release a resource.
NOTE: the resources have Automatic Priority Inheritance and highest task waiting on resource will become the owner, when resource is released.

Get semaphore.
Pend for semaphore, with time-out provision.
Post to semaphore.
Flush semaphore.

Initialise CMX.
Enter CMX.
Enter interrupt.
Exit interrupt.
Enter power down mode

Initialise UART.
Put UART char, with time-out provision.
Put UART string, with time-out provision.
Get UART char, with time-out provision.
Get UART string, with time-out provision.
Update UART buffer(s)
Initialise UART buffer(s)

CMXKAware(tm) kernel awareness.
For further information call 1300 553 313 or email



TINY PLUS Real-Time Multi-Tasking Operating System for Microprocessors and Microcomputers

The CMX-TINY+ Real-Time Multi-Tasking Operating System is now available for for processors families such as Freescale 68HC08, Renesas (formerly Hitachi) H8/300 & H8/300H & H8S, Atmel AVR family, Infineon (Siemens) 80C16x, Toshiba TLCS-900, Renesas 78K0/K0S, TI MSP430, STMicroelectronics ST7 & STM8S, and others. CMX-TINY+ provides slightly less functionality than the CMX-RTX RTOS. It was made to fit within the small amount of onboard RAM within the silicon, being in the range of 512 bytes and up.

  • Control tasks
  • Control events
  • Control messages
  • Control resources
  • Control cyclic timers
  • Control Semaphores (version 2.00 and up only)
  • Interrupts allowed to signal tasks
  • True preemption
  • Cooperative scheduling allowed
  • EXTREMELY Small RAM/ROM size
  • Fast context switch times
  • Low interrupt latency
For further information call 1300 553 313 or email


RTOS: CMXKAware Kernel Awareness

Embedded systems engineers have long desired the ability to view their programming applications running under an RTOS via their debuggers. To meet this important need, CMX has developed CMXKAware, which integrates seamlessly with a number of the embedded software industry's leading development tool environments. The result is a dramatically enhanced debugging capability that helps to minimise application development time, thereby reducing time to market for companies that manufacture products that include embedded systems.

CMXKAware is a DLL or ORTI (OSEK Run Time Interface) that presents all of the RTOS-specific information on the screen. CMXKAware allows you to display CMX-RTX's internal data structures in a convenient series of lists in the RTOS window of the debugger. This provides you with information about each of the active tasks in the target application, about each semaphore, resources, mailbox, queue and event flag group along with a list of all the tasks waiting on these kernel objects, and more. Data can be displayed graphically in real-time.

The OSEK Run Time Interface (ORTI) for CMXKAware is a universal interface for development tools to the CMX-RTX RTOS. This powerful and flexible interface allows for the evaluation and display of information about CMX-RTX, its state, its performance, the different task states, the different operating system objects etc. The object information is provided via an ASCII text file and since these implementations are configured statically, this data will be available at compilation. Additionally, the ORTI file contains dynamic information as a set of attributes that are represented by formulas to access corresponding dynamic values. Formulas for dynamic data access are comprised of constants, operations, and symbolic names within the target file. By performing a continuous scan of the internal data structures described in the ORTI file, debugging tools can extract and display critical kernel-relative information, such as task states and event traces for the last four RTOS calls in the application under test. Further, the CMXKAware ORTI Builder automates the creation of ORTI files adapted to the CMX-RTX RTOS for debugging purposes, thereby allowing embedded engineers to focus their efforts exclusively on debugging their application.

Since the DLL or ORTI utilises the kernel aware API no target resources are used. Most debuggers are supported.

For further information call 1300 553 313 or email


CMX TCP/IP Stack: CMX-MicroNet

TCP/IP for 8-bit, 16-bit and 32-bit Embedded Processors

CMX-MicroNet has been developed by the company that is famous for providing complete, elegant solutions to the embedded community - CMX! CMX's developers have the expertise and hands-on experience to satisfy the most stringent real time demands that the 8-, 16-, and 32-bit community deals with every day. When we set about the task of creating the first true TCP/IP stack for these popular processors, we knew that it had to have:

Only Industry Standard Protocols. Of what benefit are closed, proprietary protocols that constrain and confuse your development team? CMX-MicroNet offers only industry standard protocols running right on your target processor and we provide full source code with every sale!

Use your Current Processor. Why should you have to upgrade your current processor, or, worst yet, add another processor just for TCP/IP? Those hardware costs can really add up! CMX-MicroNet allows you to work with your current design and still implement the networking connectivity you need.

An Affordable Pricing Structure.
CMX-MicroNet offers a low, one-time fee and no royalties on deployed products. And you get the entire source code for free with every purchase!

For further information call 1300 553 313 or email



High performance TCP/IP implementation

CMX-TCP/IP is a portable high performance TCP/IP implementation for embedded systems. Memory usage is localised and deterministic. It uses the CMX-RTX RTOS signaling mechanisms to provide a true multitasking reentrant stack. CMX-TCP/IP can also be run without an RTOS and all of the code is written to make it easy to switch between modes without extensive source-code changes.

Most network protocols and applications are available, from BOOTP all the way up to HTTP. There are also test applications, such as a benchmark server or a ping tester, as well as a few others. A consistent command shell debug facility for all modules allows for the interactive execution of debugging commands and setting debug levels of particular modules via a serial port or Telnet connection which can be a real plus when bringing up new Ethernet hardware, etc. At production time, you may simply link with the non-debug version of the libraries for maximum memory efficiency.

CMX-TCP/IP Kit includes:
  • IP, ICMP/Raw IP, TCP, UDP, ARP, SNTP, DNS name resolution.
  • TCP/IP SNMP MIB can be included, to provide a plethora of IP performance data.
  • RFC compliant TCP support both Standard BSD Socket interface as well as High performance proprietary Socket interface
  • Standard IBM-PC compatible drivers available for keyboard, VGA, PCI, serial port, etc.
  • Includes a VFS (Virtual File System) with huffman tree compression for read-only data such as web pages, for maximum memory efficiency.
  • Specific Processor and Compiler port
  • Full Source code
  • No Royalties on Shipped Products
  • Documentation, sample test programs
  • Many Ethernet Drivers for a variety of chips including 91c96, 91c111, cs8900a, etc.
  • Free Technical Support
Additional Add-On Options:
  • BOOTP, TFTP - Bootstrap Protocol, Trivial File Transfer(Client/Server)
  • DHCP - Dynamic Host Configuration Protocol Server (Client/Server)
  • Flash File System with support for Compact Flash, MMC, RAM disk, etc.
  • FTP - File Transfer Protocol (Client/Server)
  • IMAP4 – Internet Messaging Access Protocol, Version 4
  • NAT - Network Address Translation
  • POP3 Client – Post Office Protocol
  • PPP, SLIP - Point to Point Protocol, Serial Line Interface Protocol
  • PPPoE - PPP over Ethernet
  • SMTP Client – Simple Mail Transfer Protocol
  • SNMP V1 & V2c - Simple Network Management Protocol V1 and V2c Agent
  • SSL/TLS - Secure Socket Layer / Transport Layer Security
  • Telnet Server
  • WEB Server - HTTP Server, includes CGI and SSI
For further information call 1300 553 313 or email


CMX TCP/IP Stack: CMX-INet-Plus

CMX-INet-Plus is an RFC compliant TCP/IP stack offering extensive security protocols as well as IPv4 and IPv6 support for projects that require IPv4 now with an upgrade path to IPv6 in the future or IPv6 now. CMX-INet-Plus will work with or without an RTOS and offers an extensive variety of networking and security Add-On options giving the designer the ability to implement only those options required for their embedded application.

For further information call 1300 553 313 or email


Flash File Systems

CMX-FFS is the standard edition flash file system for embedded systems developers and includes 100% Failsafe, Multiple volumes, Wear-leveling, Directories, Boot sector support, and Standard drivers for NOR Flash chips as well as RAM. CMX-FFS-NAND is a NAND Flash driver that also can be purchased with CMX-FFS and includes 100% Failsafe, Wear-leveling, and ECC algorithm.

The CMX Flash File System is completely protected against unexpected reset (power failure) and also has several other features to ensure the integrity of your data. see image

In its primary mode of operation the system maintains two FATs (File Allocation Tables). The diagram shows the principle by which the system is updated without any risk of data loss. A new file has to be completely accepted in the new FAT before the old FAT and file will be destroyed .In the event of an unexpected reset, the system is able to recover the last completely stored file, possibly the old version if storage of the new file was not complete.

  • PowerFail Safe
  • UserAccess Control
  •  RTOSes and TCP/IP stacks
  • Wear leveling
  • Mix of media types
  • NOR Flash Devices (optional)
  • Porting Guide
  • Standard API
  • Bad Block Management
  • Support and Updates
  • Royalty Free 'C' Source
  • Fully Integrated with CMX
  • Multiple Volumes
  • Directories
  • Re-entrant
  • DataFlash Devices (optional)
  • NAND Flash Devices (optional)
  • ECC (optional)
  • 6 months Technical
For further information call 1300 553 313 or email

CMX-FFS-TINY is specifically designed for certain characteristics in the flash being used. In this way it is possible to get efficient, fail-safe flash on devices with minimal resources.
CMX-FFS-TINY-BW - This system is for use with any flash devices with small erasable sectors (typically <4K) and in which data can be written in either byte or word units. Typical devices include MSP430 internal flash, SST serial flash and many more.
CMX-FFS-TINY-ST - This system is for use with ST serial flash for data.
CMX-FFS-TINY-DF - This system is for use with Atmel DataFlash.
CMX-FFS-TINY-RAM - This system is for use as a RAM Drive.

CMX-FFS-FAT is a full-featured file system for embedded systems developers who wish to add devices to their products that require FAT12/16/32 compliant media to be attached to them and includes Long filenames, Multiple Volumes, and the following Drivers: Compact Flash (True IDE and Memory I/O), MMC/SD (SPI S/W or H/W) and RAM.

CMX-FFS-SAFE-FAT is the Fail Safe, PC compatible file system for embedded device developers whose products require FAT12/16/32 compliant media support as well as added protection against the loss of data caused by unanticipated resets. Typical applications include adding a Secure Digital, Compact Flash or a Multimedia card to a device. The system includes pre-tested sample drivers for ease of development. The API is standard and easy to use with sample applications in source code provided to ensure quick integration. Hardware reference designs are also available. See image

  • Fail Safe Operation
  • FAT12/16/32
  • Long FileNames
  • ANSI C compliant
  • Standard API (fopen(), fread() etc.)
  • Highly Scalable
  • Reduced Footprint
  • Multiple Simultaneous Files Open
  • Handles Media Errors
  • RTOS Independent
  • Fully Integrated with CMX RTOSes, TCP/IP and USB stacks
  • Robust - Re-entrant
  • Royalty Free Source
  • Sample Applications
  • Comprehensive Programmer's Guide

CMX-FAT-BL Reliable Bootloader provides the ability to update your product from an SD card of other similar media types. CMX-FAT-BL is installed as a permanent bootstub and, based on the developers' design, CMX-FAT-BL can automatically check the SD or other media card for a new image and upload it to the target.

CMX-FFS-THIN is a scalable, reduced footprint file system designed for integration with 8-bit or 16-bit embedded processors with limited resources and includes FAT 12/16/32, Long file names, and the following Drivers: Compact Flash (True IDE and Memory I/O), MMC/SD (SPI S/W or H/W) and RAM

For further information call 1300 553 313 or email


CMX-USB Device

The CMX-USB device stack offers a wide selection of Add-On options including an HID class implementation supporting Human Interface Devices such as a keyboard, mouse or joystick, a full USB Mass Storage Class with optimised drivers for accessing MMC/SD cards or other devices, a CDC class implementation for supporting standard communications ports, Media Transfer (MTP) Class for portable media devices, Pictbridge Extension for MTP Class, RNDIS for Remote Networking, ECM for Ethernet Networking Control, Audio, MIDI, Printer, Personal Healthcare Class and a Bootloader. USB Mass Storage is fully compatible with CMX-FFS-THIN and CMX-FFS-FAT File Systems.

  • On Chip USB controllers:
    Atmel: AT91SAM7xxx, AT91SAM9xxx, SAM3S, SAM3U, AT91RM9200, AVR32; Freescale: imX2x/3x/5x, JM60/128, MPC834x, MCF52xx, MCF5222x, MCF53xx, MCF54xx; Fujitsu: FM3; Microchip: PIC24, PIC32; NXP: LPC11xx, 13xx, 17xx, 2148, 2368/78/88, 2468/78, 28xx, 29xx, 31xx, 32xx; Renesas: SH72xx, RX600; STMicroelectronics: STR7xx, STR9xx, STM32F1xx, STM32F2xx, STM32F4xx; TI: MSP430, Stellaris, DSP 5509A, 6457.
  • External USB controllers:
    NXP ISP1XXX and Maxim 3421E
  • CDC Class
    The CMX-USB-CDC-ACM module enables the designer to provide a virtual USB serial port on the embedded target which acts as a standard serial port and can be accessed using simple, serial API functions. CMX-USB-CDC-ACM is optimised to use minimal RAM and ROM and requires just the control channel endpoint and a single interrupt endpoint.
    CMX-USB-CDC-ECM is an Ethernet Control Model driver handling the exchange of Ethernet framed data between a USB Host and Device.
  • HID Class
    The CMX-USB-HID Class driver provides support for Human Interface Devices such as a mouse, keyboard and joystick.
  • Mass Storage
    CMX-USB-MS allows you to connect an embedded system to an embedded Host or PC and have the embedded system appear as a mass storage device to the host system.
  • Media Transfer Protocol
    CMX-USB-MTP Class driver provides the Windows XP/Vista compliant Media Transfer Protocol (MTP) widely used in the design of portable media devices. This class driver option and Mass Storage alternative, appears as a standard drive to the host and can also be used with CMX's file systems to provide synchronised host / target file system access as well as API controlled file system access.
  • Pictbridge
    CMX-USB-Pictbridge is a USB Add-On option which, when used in conjunction with CMX-USB-MTP, allows images to print directly from an image source without the need for a PC. This option also includes XML parser for encoding and decoding PictBridge protocol objects.
  • Remote Network Driver Interface (RNDIS)
    CMX-USB-RNDIS is a class driver that allows embedded devices to connect to hosts over USB and to appear as a standard network card. The RNDIS class driver includes a virtual Ethernet driver with a simple API that provides for easy integration with a TCP/IP stack or to another Ethernet driver interface.
  • Personal Healthcare Class
    CMX-USB-PHDC is a USB device class option designed for communications requirements for medical devices used in the healthcare industry.
  • Audio Class
    CMX-USB-AUD enables an embedded device to play audio output from a USB host device (PC) or to send audio input, such as a microphone, to a USB host in conjunction with the CMX-USB-HID class driver used for audio device control.
  • Printer Class
    The CMX-USB-PL class driver enables USB printers to be attached to an embedded device which generates pages in the PCL5 format.
  • MIDI Class
    The CMX-USB-MIDI class driver is available for embedded USB devices which implement the MIDI (Musical Instrument Digital Interface) protocol.
  • USB Device Bootloader
    The CMX-USB-BL Device Bootloader is a standalone system which allows an application to download new application code to the target. Using the developers’ trigger mechanism, the Bootloader accepts a new image from a host and programs it into the device. The footprint of the CMX-USB-BL is less than 4k bytes and can be held as a permanent, reliable boot-stub on a single small sector flash which handles all future firmware upgrades.
For further information call 1300 553 313 or email



CMX-USB Host stacks (OHCI, EHCI and non-compliant) are designed for processors with both integrated USB host controllers and external USB host controllers. The CMX-USB Host package offers Class drivers for Mass Storage, CDC, HID, Audio, MIDI, FTDI, Hub, OBEX, ECM, RNDIS, MTP, Printer and a Bootloader. CMX-USB Host Mass Storage is fully compatible with CMX-FFS-THIN, CMX-FFS-FAT, and CMX-FFS-SAFE-FAT File Systems and will work with or without an RTOS.

For further information call 1300 553 313 or email



The CMX-USB suite offers an optional OTG (On-The-Go) Module for applications whereby two devices must negotiate and decide which will act as a USB Host and which will operate as a USB device. The CMX-USB-OTG module is available for those processors which are equipped with an OTG controller that supports the HNP and SRP protocols which are used for USB host and USB device negotiation.

More often, embedded applications that require both USB host and USB device capability require dual mode operation. In dual mode, when a USB host is inserted, the host stack will start and when a USB device is inserted, the device stack will respond. This is accomplished by recognition of the ID pin on the USB OTG connector and is supported by CMX USB host and device stacks. For dual mode operation, OTG software is not required.

For further information call 1300 553 313 or email


CMX-USB Bootloaders

USB Host Bootloader
CMX-USBH-BL Host Bootloader provides the ability to update your product from a flash drive. With a footprint of less than 12K for code and under 2K RAM, the Host Bootloader is installed as a permanent bootstub and based on the developers' design, CMX-USBH-BL can automatically check the flash drive for a new image and upload it to the target.

USB Device Bootloader
The CMX-USB-BL Device Bootloader is a standalone system which allows an application to download new application code to the target. Using the developers’ trigger mechanism, the Bootloader accepts a new image from a host and programs it into the device. The footprint of the CMX-USB-BL is less than 4k bytes and can be held as a permanent, reliable boot-stub on a single small sector flash which handles all future firmware upgrades.

FAT Bootloader
The CMX-FAT-BL is installed as a permanent bootstub on a target processor and based on the developer’s trigger mechanism CMX-FAT-BL will check the system’s media, such as SD/ MMC card, for a new code image to be programmed into the target. CMX-FAT-BL requires less than 4K code and less than 1K RAM on an ARM7 device.

For further information call 1300 553 313 or email



CMX-CANopen allows for optimised implementations of CANopen conformant devices.

CMX-CANopen was developed to allow for maximum task optimisation, especially when used with an RTOS such as CMX-RTX. Even without an RTOS, CMX-CANopen allows adapting the execution priorities of critical tasks making CMX-CANopen one of the best performing CANopen stacks available.

ROM Specifications: 8K - 18K bytes (for CANopen Slaves)

For further information call 1300 553 313 or email



For more information please contact the MicroWay sales team: buynow
Head Office
MicroWay Pty Ltd
PO Box 84,
Braeside, Victoria, 3195, Australia
Ph: 1300 553 313
Fax: 1300 132 709
email: sales@microway.com.au
ABN: 56 129 024 825
Sydney Sales Office
MicroWay Pty Ltd
PO Box 1733,
Crows Nest, NSW 1585, Australia
Tel: 1300 553 313
Fax: 1300 132 709
email: sales@microway.com.au
ABN: 56 129 024 825
New Zealand Sales Office
MicroWay Pty Ltd (NZ)
PO Box 912026
Victoria Street West
Auckland 1142, New Zealand
Tel: 0800 450 168
email: sales@microway.co.nz

International: call +61 3 9580 1333, fax +61 3 9580 8995

© 1995-2014 MicroWay Pty Ltd. All Rights Reserved. Terms and Privacy Policy.