|
|
New Features in On Time RTOS-32 5.0
New Features in RTTarget-32
- 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.
- 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.
New Features in 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.
- OpenMP Support
The OpenMP C and C++ application
program interface automates the effective use of multiple processors.
Visual Studio 2005/2008 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
- 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.
New Features in RTIP-32
- 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 throuphput on networks with many lost
packets.
- New Drivers
RTIP-32 now includes drivers for the RealTek Gigabit Ethernet controllers
RTL8168B, RTL8168C, RTL8169, RTL8169SB, RTL8169SC, RTL8110SB, RTL8111B and
the RDC R6040 Ethernet Controller.
New Features in 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 dispalys 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.
New Features in RTUSB-32
- 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.
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 2000, XP, or Vista.
- 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 eariler 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.
|