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

On Time RTOS-32

Win32 API Compatible RTOS for 32/64-bit x86 Embedded Systems

On Time's royalty-free hard real-time embedded operating system for 32/64-bit x86 CPUs implements a Windows subset kernel in only 16k of memory. It provides about 400 Win32 API functions and can load Windows DLLs.


  • Fully Integrates with Microsoft Visual Studio and other Compilers
  • No Run-Time Royalties
  • Full Source Code Available
  • Free Technical Support by Phone and Email
  • Free Test Version

On Time RTOS-32 Components

On Time RTOS-32 applications always use RTTarget-32.

Components RTKernel-32, RTFiles-32, RTIP-32, RTPEG-32, and RTUSB-32 are optional.


RTTarget-32 - Core Operating System and Development Tools
RTTarget-32 includes all development tools required to run 32-bit applications on an embedded system. RTTarget-32 can process an application built with a regular Win32 compiler to run on the embedded target. It provides boot code to initialise the target's hardware, a run-time library, a locator, and cross debugging support. RTTarget-32's run-time environment emulates a subset of the Win32 API.

RTKernel-32 - Real-Time Scheduler
RTKernel-32 is a library with functions to create threads, semaphores, critical sections, etc. It adds most Win32 thread API functions to On Time RTOS-32's Win32 emulation.

RTFiles-32 - Embedded File System
RTFiles-32 is a portable royalty-free FAT-12/16/32, exFAT, and ISO 9660 file system for embedded systems. RTFiles-32 is a library containing the core file handling functions as well as the required device drivers. Several different APIs are provided for compatibility with other systems. No source code modifications of existing programs are required to use RTFiles-32.

RTIP-32 - Embedded TCP/IP Stack
RTIP-32 is a TCP/IP stack for embedded systems. It provides deterministic, configurable memory usage, a table driven device driver interface and an easy-to-use Berkeley socket compatible API. The network configuration can be set statically or obtained dynamically at runtime using RARP, BOOTP, and optionally DHCP protocols.
RTIP-32 supports simultaneous communications over multiple Ethernet and serial port interfaces. It supports the protocols UDP, TCP, ARP, RARP, BOOTP, IGMP, ICMP, NAT, and NATP. Numerous add-ons are available to extend RTIP-32's range of supported protocols

RTPEG-32 - Portable Embedded GUI
RTPEG-32 is an event-driven, object-oriented C++ GUI library for embedded systems. It supports professional Windows look-and-feel or custom user interfaces. Device drivers for VGA and SVGA/VESA graphics hardware are included.

RTUSB-32 - Real-Time Host USB Stack
RTUSB-32 contains the core USB host protocol stack, the required host controller device drivers, a low-level communication API and high-level class drivers. Full source code is available. RTUSB-32 is suitable for implementing USB hosts, not USB devices.



RTTarget-32 - Core Operating System and Development Tools

RTTarget-32 is a Win32 subset operating system for 32- and 64-bit x86 embedded systems. Programs are developed under Microsoft Windows using standard 32-bit compilers (Embarcadero C/C++, Microsoft Visual C/C++, Embarcadero Delphi). Executable files built with these compilers are processed by RTTarget-32 to run on the target system.

RT-Target Features

  • Target Booting
    RTTarget-32's boot code can boot applications directly from floppy disk, hard disk, EPROM disk, flash disk, ROM, a BIOS extension, or DOS. At power-on or reset, the boot code initialises the target computer's hardware, sets up system data structures such as the GDT, IDT, and the page table, and starts the application. A PC compatible BIOS can be used for booting, but is optional. RTTarget-32's boot code can control the complete boot sequence starting at the boot vector.
  • Cross Debugging Over Serial Ports, Parallel Ports, and Ethernet
    Source-level debugging is supported using Borland's free Turbo Debugger or the debugger integrated in Microsoft Visual Studio 6.0/.NET/2005/2008/Express. Host and target computers are connected using a serial link at up to 921600 baud, a parallel port, or over Ethernet. With RTIP-32, the application can use the same Ethernet interface as the cross debugger if only one Ethernet interface is available.
  • Run-Time Library
    RTTarget-32 includes functions for physical memory access, port I/O, hardware interrupt handling, serial I/O, real-time clock access, PCI and PnP BIOS calls, PCMCIA card management, 387 FPU emulation, and more.
  • Win32 Emulation Library
    RTTarget-32 provides about 270 Win32 API functions, allowing it to run many Win32 programs unmodified. The Win32 API emulation covers memory management, file I/O (RAM files, console files, printer ports), console I/O (screen and keyboard), time-of-day and system tick, DLL management (LoadLibrary/GetProcAddress), exception handling, access to Win32 resources, memory mapped files, etc.
  • Supports C/C++ and Pascal Run-Time Systems
    The compiler's run-time system functions such as printf, malloc, fopen, etc., are fully supported. Even advanced C++ and Pascal features such as exception handling, run-time type identification, etc., are available. Alternatively, programs can run without run-time system for even less memory overhead.
  • Low Resource Requirements
    32-bit programs developed with RTTarget-32 can run in as little as 16k of memory. A typical "Hello World" program with RTTarget-32's Win32 emulation library, keyboard and screen driver, and a full C++ run-time system can boot and run on a system with about 64k of total memory.
  • Supports Privilege Levels
    Programs can run at CPU privilege level 0 or 3 to optimise either for maximum protection or best performance.
  • Supports Page-Level Protection
    The CPU's memory protection features are used to guarantee that programs cannot overwrite protected data, code, or critical system tables.
  • 387 FPU Software Emulator
    Even on CPUs without a hardware floating point unit, applications can use floating point calculations and types such as float, double, and long double. The 387 math emulator is fully reentrant and interruptible.
  • Multiprocessor Support
    RTTarget-32 has functions to start and stop additional CPUs. Spinlocks and inter-processor interrupts are available to synchronise execution among CPUs. While RTTarget-32 does not contain a multitasking scheduler, RTKernel-32 can use the multiprocessor support to schedule threads on up to 32 CPUs.
  • APIC Support
    If the target has at least one IOAPIC (Input Output Advanced Interrupt Controller), RTTarget-32 applications can use it to replace the legacy i8259 interrupt controllers. APIC mode supports a higher interrupt load and up to 32 (instead of 15) interrupt signals, requiring less IRQ sharing.
  • Supports DLLs
    Applications consist of one main program (the .exe file) and up to 31 DLLs, which can be statically linked into a program image or loaded dynamically through a file system.
  • Data Compression
    Program code and data can be compressed to save EPROM or boot disk space and accelerate downloads.
  • RAM Files
    Even when RTFiles-32 is not used, file I/O can be simulated with file images located in reserved RAM or ROM on the target. With On Time's embedded file system RTFiles-32, files on disk can also be accessed.
  • Drivers
    RTTarget-32 has built in drivers for keyboard, text-mode screen, serial ports, parallel ports, PS/2 and serial mice, and PCMCIA controllers. Since RTTarget-32 allows direct access to physical memory, I/O ports, and hardware interrupts, developing additional drivers is very easy.
  • Supports Platform RTOS32Win from acontis technologies
    With the add-on component RTVmf-32, On Time RTOS-32 programs can be executed under RTOS32Win from acontis technologies. RTOS32Win is a virtual machine framework which can execute On Time RTOS-32 programs parallel to Window under real-time conditions.
  • Supports the Real-Time Hypervisor from Real-Time Systems
    With the new add-on component RTRth-32, On Time RTOS-32 programs can be executed under the Real-Time Hypervisor from Real-Time Systems. The Real-Time Hypervisor can execute several operating systems or several instances of the same system on separate cores of multi-core or multi-CPU systems.



RTKernel-32 - Real-Time Scheduler for On Time RTOS-32

RTKernel-32 is a preemtive real-time multitasking scheduler for On Time RTOS-32. RTKernel-32 is compact (about 16k code, 6k data), fast, and offers excellent real-time response times. All RTKernel-32 threads run within a single program (single process, multi-threaded). The multiprocessor version of RTKernel-32 supports up to 32 CPU cores.

RTKernel-32 Threads

An RTKernel-32 thread is implemented as a C/C++ function. A program can dynamically create threads using the appropriate kernel API calls. Each thread has its own stack, a priority between 1 and 64, and a task state. Several threads can be started executing the same code; however, each is allocated its own stack and thus its own local variables. All threads have access to the program's global data. Thus, shared code and shared data are inherently implemented by RTKernel-32.

Inter-Task Communication

RTKernel-32 offers three different mechanisms for inter-task communication:

  • Semaphores allow the exchange of signals for activating and suspending threads. RTKernel-32 supports counting, binary, event, resource, mutex semaphores, and critical sections. Resource and mutex semaphores implement priority inheritance.
  • Mailboxes (queues or FIFO buffers) allow threads to exchange messages asynchronously. The maximum number and size of messages can be configured for each mailbox. High priority messages can be sent to a mailbox ahead of all others. Mailboxes can also be used to send data from hardware interrupt handlers to threads.
  • Message-passing is used for synchronous (rendezvous style) exchange of messages. No data is buffered, data is sent directly from one thread to another.


RTKernel-32 offers excellent performance. Its benchmark program RTBench (also included in the free On Time RTOS-32 Evaluation Kit) may be used to measure its performance on any target computer. The table below lists some results for three different targets. RTKernel-32's scheduler is about 5 times faster than the scheduler of Windows.



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: [email protected]
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: [email protected]
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: [email protected]

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

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