|
New Features in On Time RTOS-32 5.0
RTTarget-32
- Extended RAM
RTTarget-32 applications can now
use up to one terabyte of RAM through RTTarget-32's Extended RAM
Management API.
- New SD Card Driver
RTFiles-32 now
supports SD (Secure Digital) Memory Cards including SDSC, SDHC, and SDXC
(Standard, High, eXtended Capacity) connected to a PCI SD Card host
controller.
- Microsoft Run-Time System DLLs Supported
On
Time RTOS-32 applications can now link the Microsoft run-time system DLLs.
- Unicode Support for Win32 File I/O API
The
Unicode version of the Win32 File I/O API is now available. RTTarget-32
will translate Unicode file names to the code page (including UTF-8)
selected by the application. Win32 API functions MultiByteToWideChar and
WideCharToMultiByte are also fully supported.
- Support for Microsoft Visual Studio 2008, 2010, 2012, and
2013
The latest versions of Microsoft's Visual Studio are
now supported.
- Multiprocessor Support
Numerous functions have
been added to determine how many CPUs are installed and 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 new 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.
In APIC mode, the interrupt processing overhead is lower and typically up
to 24 (max. 32) IRQ lines are available, requiring less IRQ sharing. While
multiprocessor applications always use APIC mode, single CPU programs can
choose between the default legacy PIC mode and APIC mode.
- Support for Message Signaled Interrupts (MSI)
New function RTMPSetupMSI configures one or all capable PCI
and PCI Express devices to trigger interrupts through the Message Signaled
Interrupts (MSI) mechanism. The advantage of MSI is that the interrupt
vector can be freely choosen.
- New Demo Program MPDiag
MPDiag displays
detailed information about the target's IOAPIC and multiprocessor
capabilities. It also executes all APIC and multiprocessor API functions
of RTTarget-32 such as exchanging inter-processor interrupts.
- ACPI Table Access Functions
An API has been
added to retrieve ACPI tables, if such tables are made available by the
BIOS.
- Cross Debugging Over Ethernet
The Debug Monitor
now contains a minimal IP stack and several drivers for PCI Ethernet
controllers to support cross debugging over Ethernet. The Monitor supports
ARP, ICMP/Ping, a DHCP client, and UDP to exchange data with the host
debugger. RTIP-32 is not required to use cross debugging over Ethernet,
but if it is used, the application can use the same Ethernet interface as
the Debug Monitor.
- Support for 64-Bit Versions of Microsoft Windows
The RTTarget-32 development tools have been updated to also work under
64-bit versions of Windows. Cross debugging over parallel (LPT) ports is
not supported under 64-bit Windows.
- Supports Platform RTOS32Win from acontis technologies
With the new 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
- Multiprocessor Support
RTKernel-32 now includes
two schedulers: the single-CPU scheduler plus a new multiprocessor
scheduler which can manage up to 32 CPUs. To use the multi-CPU scheduler,
applications merely have to link library Rtk32mp.lib instead of Rtk32.lib.
Modifications to existing applications are not required. RTKernel-32
automatically distributes threads among all available CPUs. With new
functions RTKSetCPUMask or SetThreadAffinityMask, threads can be assigned
to specific threads.
- OpenMP Support
The OpenMP C and C++ application
program interface automates the effective use of multiple processors.
Visual Studio 2005/2008/2010/2012/2013 supports the OpenMP 2.0 standard
and can be used with On Time RTOS-32.
- Kernel Tracer with Time Stamps
The Kernel Tracer
can now record a time stamp with each trace event, either with microsecond
or nanosecond resolution. On multiprocessor systems, it can alternatively
record the CPU on which the event occurred.
- New Clock Driver for Local APIC
The new clock
driver Clkapic.lib uses the boot CPU's local APIC as a source for timer
interrupts.
- New High Resolution Timer Driver for ACPI PM Timer
The new driver Hrtpm is available for targets with an ACPI motherboard.
It can be used to avoid timer drifts of the Hrtpent driver on
multiprocessor systems.
- System Driver Idle Function Calls RTHaltCPL3
RTKernel-32's Idle task(s) now call(s) two different system driver
functions depending on the current scheduler mode. With cooperative
scheduling, CPU instruction PAUSE is executed. In preemptive mode,
RTHaltCPL3 is called if driver flag DF_IDLE_HALT is set.
- Single-Processor Scheduler Faster
Numerous
operations of the scheduler have been further optimized. For example, the
time required to lock and release a resource semaphore on an AMD
Élan Sc520 CPU at 100Mhz has decreased from 3.50µs to
2.73µs (22%).
- CPU Run-Time Statistics Supported in Standard Version
Both the Debug Version and the Standard Version of RTKernel-32 can now keep
track of the CPU time consumed by each thread and each interrupt service
routine.
- Win32 Asynchronous Procedure Call (APC) Support
Win32 API functions QueueUserAPC and SleepEx have been added and can be
used to schedule APCs.
- New Demo Programs MPPrimes and OMPrimes
MPPrimes
demonstrates the use of more than one CPU to calculate prime numbers. The
interactive program has commands for benchmarking to test how much
performance improvement can be gained with multiple CPUs. OMPrimes
demonstrates the use of OpenMP.
- New Compile Time Options
RTKernel-32's source
code now contains a new preprocessor directive to exclude all code
associated with time slicing. RTKernel-32 source code owners can use this
option for a smaller and faster kernel if time slicing is not
required.
RTFiles-32
- Supports exFAT
RTFiles-32 now supports the
improved variation of the FAT file systems to support larger disks and
files.
- New Device Driver for AHCI SATA Controllers
The new AHCI disk driver supports up to 2 AHCI controllers with up to 64
attached disk, CD-ROM and DVD SATA drives.
- Big-Endian Support
RTFiles-32 can now be
compiled for CPUs using the Big-Endian (high bytes first) byte order. This
allows easier porting to PowerPC, 68k, ColdFire, and similar CPUs.
- Support for CPUs Which Cannot Access Misaligned
Data
RTFiles-32 now has a compile time option to unpack/pack
WORD and DWORD values of misaligned FAT data structures. This allows
RTFiles-32 to be used on CPUs which cannot directly access such
values.
RTIP-32
- Checksum Offloading for Realtek, Intel, and VIA Gigabit
Controller Drivers
The R8168_DEVICE, I8254X_DEVICE,
I82575_DEVICE, and VIAVELO_DEVICE drivers can now delegate the calculation
and testing of the IP, TCP, and UDP checksums to the Ethernet
controller.
- Faster File Transfers in HTTP, FTP, and SMB Server
A new file I/O Accelerator is now available for the HTTP, FTP, and SMB
servers. The I/O Accelerator implements read-ahead and write-behind file
I/O and can improve file transfer speeds significantly on some
systems.
- NAT Routing
RTIP-32 can now act as a NAT router
using the NAT and NATP protocols.
- NewReno TCP Fast Recovery Algorithm Added
RTIP-32's Fast TCP Retransmission has been enhanced with the NewReno
TCP Fast Recovery Algorithm (RFC 2582). This modification can recover
more than one lost packet without waiting for a timeout to expire,
significantly improving throughput on networks with many lost
packets.
- New Drivers for RealTek Gigabit, RDC R6040, VIA Velocity, and
Intel EG20T Ethernet Controllers
Drivers for these Ethernet
controllers have been added: RTL8168B, RTL8168C, RTL8169, RTL8169SB,
RTL8169SC, RTL8110SB, RTL8111B, R6040, VT6122, VT6130, VT6132, EG20T,
ML7223, ML7831. The RealTek Gigabit driver supports Jumbo frames.
- Intel Gigabit Ethernet Driver Enhanced
The
Intel Gigabit Ethernet driver now supports numerous new controller models
and Jumbo frames.
RTPEG-32
- Small and Faster
All internal 16-bit variables
have been changed to 32-bit, resulting in better structure alignment and
smaller and faster code.
- New Versions of Windows Builder, Font Capture, and Image
Convert
While RTPEG-32 applications remains source code
compatible with previous versions, these three programs have been updated
to contain many new features.
- PNG File Format Support in Image Convert
Image
Convert can now process PNG files in addition to BMP, JPG, and GIF.
- Anti-Aliased Fonts
The new Font Capture utility
can now generate anti-aliased fonts for an improved appearance.
Anti-aliased fonts need a color depth of at least 8 bits on the
target.
- Font Capture Can Change a Font's Aspect Ratio
This option may be useful for displays with an unusual aspect
ratio.
- New PegAnimation Class
The new PegAnimation
class can display short animations consisting of a series of bitmaps.
- New Demo Program Animate
New demo program
Animate demonstrates the new PegAnimation window as well as an
anti-aliased font.
RTUSB-32
- USB 3.0 and XHCI Controller Support
The RTUSB-32 bus driver has been updated to support the USB 3.0 protocol
in addition to USB 1.1 and 2.0. The XHCI driver is made available through
function RTURegisterXHCI.
- New Function RTUWaitInitialEnumDone
Function
RTUWaitInitialEnumDone can be used to wait until the initial enumeration
and initialization of USB devices has been completed.
- New ELO and 3M Touch Screen Drivers
The USB
touch screen driver has been extended to handle these devices: Hampshire
Company TSHARC Octopus, eGalax Inc., 3M EX II 8000UR, 3M SC800, ELO
CTR-250000-IT-USB-00, ELO 3000U.
- New USB Audio Class Driver
This new driver
allows applications to play or record sound using USB audio devices.
Upgrade 4.0 -> 5.0 Issues
In general, On Time RTOS-32 5.0 is compatible with version 4.0. This
section discusses a few issues to consider when a project is migrated to
version 5.0:
- Microsoft Visual C/C++ 5.0 Support Discontinued
All Microsoft C/C++ libraries shipped with On Time RTOS-32 5.0 are now
compiled with VC++ 6.0, making them incompatible with VC++ 5.0. If you
prefer to continue to use VC++ 5.0, you need the On Time RTOS-32 source
code and must recompile all used libraries.
- Borland C/C++ 4.5 Support Discontinued
While
most C programs can still be compiled with Borland C/C++ 4.5, official
support for this compiler has been discontinued. Borland C/C++ 5.5 is
available as a free download from Borland's Web site, and it is
supported.
- Windows 95/98/ME and NT4 Support Discontinued
The current versions of the On Time RTOS-32 host development tools still
work under these older versions of Windows, but we do not guarantee that
future versions will. Please use Windows XP, Vista, Windows 7, or Windows
8.
- RTKernel-32's Automatic Library Protection
Discontinued
The legacy method to solve C/C++ run-time
system reentrance issues is no longer available. Please use the compiler's
multi-threaded libraries instead.
- RTKernel-32 Config Flags RF_TCPUTIME and RF_ICPUTIME Supported
in Standard Version
Both the Debug Version and the Standard
Version of RTKernel-32 can now keep track of the CPU time consumed by each
thread and each interrupt service routine. Both flags are not set by
default in the Standard Version. Note that setting one or both had no
effect in earlier versions, but it does in version 5.
- RTPEG-32 Type SIGNED Changed from 'short' to 'int'
Type SIGNED is used extensively by RTPEG-32. To achieve better
performance, code size, and structure alignment, this type has been
changed to int. For new applications, it is recommended to use PEGINT
(int) instead of SIGNED. Legacy type WORD remains to be 'unsigned short',
but type PEGUINT (unsigned int) should be used instead.
- RTPEG-32 Window Builder Project File Format
Updated
To accommodate for many new Window Builder features,
the project file format has been extended. The new Window Builder will
automatically update version 4.0 project files and save them in the new
format. Pre version 5.0 versions of Window Builder will not be able to
load such project files.
|