![]() |
Home |
Frequently Asked Questions about On Time RTOS-32
|
Boot Phase | Typical Time in Seconds | Comments |
---|---|---|
BIOS POST | 5-30 | BIOS chipset initialization, system test, device detection and configuration. Many BIOSes for embedded systems have special quick boot options to avoid device detection phases with long timeouts. On Time RTOS-32 has no control over how long the BIOS needs for its POST (Power On Self Test). However, On Time RTOS-32 supports systems without a BIOS. Its own chipset initialization takes only a few milliseconds. If very short boot times are required, BIOS-less systems are recommended. |
BIOS Boot Loader Load | 0.1-1 | The BIOS loads the boot sector from the boot device. The actual time required depends on the type of boot device. Flash or rotating disks are fastest, floppies are slow. On BIOS-less systems, this time is 0 since there is no boot loader. |
OS Boot Loader | 0.1-15 | The boot loader reads the rest of the operating system and the application. Again, the speed depends on the type of boot device and the size of the application. With On Time RTOS-32, the boot image is always a single contiguous file containing the OS and the application. For example, an On Time RTOS-32 application containing RTTarget-32, RTKernel-32, RTFiles-32, RTIP-32 and an FTP Server (boot image size: 170k) booted from a flash disk would take approximately 0.1 seconds to load. On BIOS-less systems, this time is zero, since the application resides in ROM. |
Application Initialization | 0.1-1 | The startup code must initialize the BSS data segment to zero, perform the C/C++ run-time system initialization, and call initialization routines of the OS. Under On Time RTOS-32, this phase does not involve disk I/O. The actual time depends on the application's needs, but is usually 0.1 to about 1 second. |
If your CPU is capable of running in 386 32-bit protected mode (any 32-bit or 64-bit x86 CPUs), the answer is yes. On Time RTOS-32 also supports 16-bit real mode during the boot process (e.g. for most Intel CPUs), but this is not required. For example, National Semiconductor's NS486SXF starts up in protected mode and is supported.
At On Time, we are specialized on the x86 family of CPUs. Rather than settling for the lowest common denominator of many different CPUs, we prefer to concentrate on one and take advantage of all of its unique features. Nevertheless, On Time RTOS-32 components RTKernel-32, RTFiles-32, and RTUSB-32 are designed to be portable and are written in 100% ANSI C. Each has a system abstraction layer with only a few system dependent functions which need to be customized for a new CPU or OS.
Ports of RTIP-32 and RTPEG-32 for various CPUs are available from EBSnet, Inc and Swell Software, respectively. RTFiles-32 and RTUSB-32 have been ported by many individual customers to various 16-bit and 32-bit systems.
Yes. On Time RTOS-32 applications only need a 386 compatible or higher CPU and a few kilobytes of RAM. Standard PCs will always meet and exceed these requirements.
You need a Win32 compiler (Borland or Microsoft), RTTarget-32, and, if you want to boot from ROM or FLASH rather than from disk, an EPROM burner with software that supports Intel HEX or BIN files. If you need multitasking, RTKernel-32 is also required. If you need access to mass storage devices such as diskettes, hard disks, flash disks, SRAM cards, or CDs/DVDs, RTFiles-32 is also required. For network access, the TCP/IP stack RTIP-32 and RTKernel-32 are necessary. If you need a graphical user interface instead of the text mode console I/O functions provided by RTTarget-32, you will also need RTPEG-32. To use USB devices attached to the embedded system, RTUSB-32 is required.
They can run under 32/64-bit Windows if you only use the Win32 API subset supported by On Time RTOS-32 (about 400 functions). The demo programs DLLDemo and W32Bench included with On Time RTOS-32 demonstrate this. Both programs run without recompiling or relinking under On Time RTOS-32 and Windows. Programs which use On Time RTOS-32 features not supported by Windows (e.g. installing hardware interrupt handlers in user applications) cannot execute under Windows.
Any type of shared memory multiprocessor system is supported, including Hyperthreading, multi-cores, and multiple CPUs. RTKernel-32 has an option to disable Hyperthreading if you want to limit execution to physical cores.
Two different schedulers are shipped with RTKernel-32, and you can select at link time which scheduler will be included in the application. The single-processor scheduler contains no code associated with multiprocessor or OpenMP support. The multiprocessor kernel also supports single CPU operation.
On Time RTOS-32 supports loading a program from a diskette, hard disk, USB disk, or CD/DVD at boot time if the target has a BIOS supporting the respective disk device. RTTarget-32's RAM (or ROM) files can be used with an emulated file system in RAM/ROM. In order to read and write DOS/Windows compatible files at run-time, you will need RTFiles-32.
Yes. The RTTarget-32 locator can process one .EXE file and up to 63 DLLs to build a binary program image. DLLs can be statically referenced through import libraries or loaded dynamically (from the program image in memory or from disk using RTFiles-32) at run-time using LoadLibrary and GetProcAddress.
No, On Time RTOS-32 does not support Windows drivers.
On Time RTOS-32 offers functions to read from and write to I/O ports. All the compiler's port I/O functions are supported (e.g., inportb(), inp(), etc). None of the restrictions of Windows apply. Your application has full control over the hardware. The same is true for the address space. Since physical and logical addresses are identical, you can load absolute values into pointers to directly access memory mapped devices, DMA buffers, etc. Such memory regions can be defined in the locate process to allow access even when paging is enabled. Programming the hardware under On Time RTOS-32 is very simple.
If you have a VESA driver for your card, you can boot DOS, load the VESA driver, and then boot into the RTTarget-32 application. For BIOS-less embedded systems with custom video hardware, please contact On Time for additional information. Other drivers may be available free of charge. All screen drivers supplied with RTPEG-32 come with complete source code. They can be used as templates for custom screen driver development.
The answer depends on the characteristics of the specific library. If the library only uses the Win32 API functions supported by On Time RTOS-32, then it will be compatible with On Time RTOS-32. All Win32 functions supported by On Time RTOS-32 are included in the Evaluation Kit available for download from this Web site. Thus, you can test-link a program with the third-party library in question and the RTTarget-32 Evaluation Kit to check for unresolved API calls.
RTKernel-32, RTFiles-32, and RTUSB-32 can be used with Delphi, but ironically, a C/C++ compiler is required to do this. The RTKernel-32, RTFiles-32, and RTUSB-32 libraries can be linked as a DLL which can then be used by Delphi programs. You do not have to write a single line of C/C++ code, but you need a C/C++ compiler/linker and the C/C++ run-time system libraries to link the DLL. Pascal import units for the complete APIs of RTKernel-32, RTFiles-32, and RTUSB-32 are included. Examples for using RTKernel-32, RTFiles-32, and RTUSB-32 with Delphi programs are included in the full product and the Evaluation Kit.
RTIP-32 can be used by Pascal programs by building custom import units based on the application's needs. RTPEG-32 only has a C++ class interface and thus cannot be used directly by Pascal programs. However, On Time RTOS-32 supports applications built with several programming languages, so the GUI part of an application could be written in C++, while other parts are implemented in Pascal, C, or Assembler.
On Time RTOS-32's Win32 API emulation is comprehensive enough to execute Ada programs compiled with the Windows version of Aonix ObjectAda. At least components RTTarget-32 and RTKernel-32 are required. Source level debugging is possible using the Microsoft Visual Studio debugger. A sample "Hello World" type of Ada project is available from On Time's technical support upon request.
The On Time RTOS-32 components are provided as linkable libraries (.LIB files). The source code add-ons allow you to completely rebuild these libraries. For most applications, there is no need to ever do this. Benefits are the ability to change compile-time options. For example, the number of priorities supported by RTKernel-32 is preconfigured to 256, but can be changed to any other value if you recompile the kernel. RTIP-32 and RTPEG-32 can be customized to exclude unused features and reduce code size or to add features not included in the precompiled version (e.g., RTPEG-32's functions for Bezier curves which require floating point calculations or RTIP-32's RIP protocol support).
On Time RTOS-32 is self-scaling. All components are provided as libraries to be linked into the application. As a consequence, only the specific components and features that are referenced and used will be linked. Unused code is not included. The table below lists typical memory requirements of all On Time RTOS-32 components and of other code a program needs. Please note that the actual requirements can vary significantly from program to program.
Component | Use | Code | Data | Comment |
---|---|---|---|---|
Run-time system | typical | 20-30k | 4k | Typical size of a run-time system linked by a C/C++ compiler |
Boot Code | always | 6k | 4k | Target initialization, GDT, IDT, etc. |
Page Table | optional | 0 | 8k-4M | Page-level memory protection (recommended, but not required) |
RTTarget-32 | minimal | 2k | 0.1k | Required by simple programs without a full C/C++ run-time system |
RTTarget-32 | typical | 24k | 4k | Win32 API referenced by a typical C/C++ run-time system |
RTTarget-32 | full | 48k | 8k | All of RTTarget-32 (~600 functions) |
RTKernel-32 | minimal | 16k | 6k | Includes semaphores, message passing, mailboxes |
RTKernel-32 | full | 32k | 6k | Adds timer, thread windows, RS232 drivers, kernel tracer, etc. |
RTFiles-32 | minimal | 40k | 12k | File system with RAM disk driver, 4k cache |
RTFiles-32 | typical | 48k | 26k | File system with IDE and floppy driver, 16k cache |
RTFiles-32 | full | 64k | 26k | Adds linear flash, an MTD, and M-Systems DiskOnChip drivers |
RTIP-32 | minimal | 32k | 16k | TCP/IP stack with UDP only (no TCP) |
RTIP-32 | typical | 64k | 32k | TCP/IP stack with UDP and TCP |
RTIP-32 | full | 128k | 64k | Adds PPP, FTP, Telnet, Web server, SMTP/POP3, SNMP, DHCP, etc. |
RTPEG-32 | minimal | 64k | 16k | Minimal "Hello World" GUI program |
RTPEG-32 | typical | 96k | 16k | Typical program using windows and controls |
RTPEG-32 | full | 180k | 16k | All RTPEG-32 classes with several screen device drivers loaded |
RTUSB-32 | minimal | 16k | 8k | One host controller driver, keyboard class driver |
RTUSB-32 | typical | 32k | 16k | All host controller drivers, several class drivers |
RTUSB-32 | full | 32k | 64k | All host controller drivers, several class drivers, many (>8) attached devices, isochronous I/O |
Donwloading programs is much faster than most users would expect. Downloaded data is compressed and only those parts of an application actually required on the target (or which have changed since the last test run) are transferred.
The table below summarizes the download times for a small and a typical application built with Microsoft Visual Studio 6.0, Debug Configuration.
Program | EXE File Size | RTB File Size | RS232, 115200 Baud | RS232, 921600 Baud | Parallel Port | Ethernet (100Mbs) |
---|---|---|---|---|---|---|
Hello | 201k | 48k | 4.4 Seconds | 0.6 Seconds | 0.5 Seconds | 0.01 Seconds |
FTPServer | 672k | 200k | 18.2 Seconds | 2.3 Seconds | 2.0 Seconds | 0.04 Seconds |
You need at least On Time RTOS-32 components RTTarget-32, RTVmf-32 or RTRth-32, and RTOS32Win from acontis technologies or the Real-Time Hypervisor from Real-Time Systems. RTOS32Win is a virtual machine framework which can execute On Time RTOS-32 programs parallel to Window under real-time conditions. Windows and On Time RTOS-32 can either run on the same CPU/core, or CPUs/cores can be explicitly assigned to Windows and On Time RTOS-32. The Real-Time Hypervisor always runs different operating system instances on different cores.
Many issues must be considered when comparing On Time RTOS-32 with Linux. Some of them are discussed in our white paper On Time RTOS-32 Versus Linux for Real-Time Embedded Systems.
There are none! Linked applications can be distributed as binary images in any quantity without the need for reporting or paying anything to On Time.
Just call or send an email to one of the On Time offices. If you have purely technical questions, you should contact On Time's technical support at Email address at On Time. To get in touch with other On Time RTOS-32 users, you can also subscribe to the On Time RTOS-32 Support Mailing List. Instructions for using the list are given on the On Time RTOS-32 support page.
Last update: November 28, 2021 | Copyright © 1996,2021 On Time |