|
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 (Borland C/C++, Microsoft Visual C/C++, Borland
Delphi). Executable files built with these compilers are processed by
RTTarget-32 to run on the target system.
Features
- Target Booting
RTTarget-32's boot code can
boot applications directly from a floppy, hard disk, CD-ROM, USB stick,
ROM, a BIOS extension, UEFI firmware, or DOS. In addition, the boot code
maintains system data structures such as the GDT, IDT, and the page
table.
- Cross Debugging Over Serial Ports, Parallel Ports, and
Ethernet
Source-level debugging is supported using
Borland's Turbo Debugger or the debugger integrated in Microsoft
Visual Studio. 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
device management, 387 FPU emulation, SMBIOS and ACPI access, and more.
- Win32 Emulation Library
RTTarget-32 provides about 400 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 optimize 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 synchronize 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 63
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.
- Extended RAM
RTTarget-32 applications are 32 bit but can nevertheless use up to one
terabyte of RAM through RTTarget-32's Extended RAM Management API.
- 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.
Using RTTarget-32
RTTarget-32 programs are compiled as standard console mode programs for
32-bit Windows; the RTTarget-32 library Rtt32.lib is simply linked to the
application. The resulting .exe file is converted by RTTarget-32's locator
to produce a binary image of the application. This binary image can be
programmed into an EPROM, written to a boot disk, or submitted to the
debugger for downloading. For example, the commands:
cl Test.cpp Rtt32.lib
Rtloc Test
Bootdisk Test A:
would compile, link, and locate program Test and place it on an
RTTarget-32 boot disk as a self-booting application.
RTTarget-32 is shipped with many example projects that show how to use
the RTTarget-32 locator and other tools with Microsoft Visual Studio and
other compilers.
Creating a binary program image file with standard Win32
compilers and RTTarget-32
RTTarget-32 can be fully integrated with Microsoft
Visual Studio. The Visual Studio integrated debugger can be used to
cross-debug embedded systems.
Borland's Turbo Debugger together with RTTarget-32
supports hardware breakpoints on the target.
|