 |
The information
on this page has been provided with
kind permission
of On-Time.
Please
check the pages
at http://www.on-time.com for updated information.
RTKernel-32 is a powerful real-time multitasking system. It was
designed for software developers who wish to implement professional
process control applications on 32-bit embedded systems. Every effort
has been made to ensure easy usage and excellent run-time performance.
RTKernel-32 is compact (about 16k of code, 6k of data) and provides
the programmer with the basic tools needed to develop efficient
real-time software.
RTKernel-32 is a library you can link to your application program.
It offers a number of functions to manage tasks, semaphores,
mailboxes, interrupts, etc. All RTKernel-32 threads run within a
single program. An RTKernel-32 application consists of a single
executable containing the kernel, the required drivers, and all
threads.
The main features of RTKernel-32:
- Unlimited number of tasks
RTKernel-32 can handle as many tasks/threads as will fit into the
computer's available memory. One thread requires about 1k.
- Task switch time of about 5 microseconds (80486/33)
RTKernel-32 is a powerful system offering unequaled performance.
- Task switch time remains constant for any number of tasks
Many multitasking systems exhibit severely reduced performance when
too many tasks are activated. RTKernel-32's performance is
independent of the number of tasks activated.
- 64 priorities
The behavior of programs may be fine-tuned precisely using different
priorities.
- Cooperative and preemptive scheduling
With preemptive scheduling, task switches can take place at
practically all times. Tasks can be activated directly out of
interrupt handlers. Preemptions can be enabled or disabled.
- Support of math coprocessor / emulator
If a math coprocessor is installed, it can be utilized by any number
of tasks. Its registers can be preserved by RTKernel-32 during task
switches. FPU software emulators are also supported.
- Interrupt support
Using RTKernel-32, it is possible to exchange data with other tasks
and to suspend or activate tasks out of interrupt handlers. The
interrupt priorities of the interrupt controller can be
re-programmed to achieve the best possible interrupt response times.
PCI interrupt sharing is fully supported.
- Time slicing
RTKernel-32 can be used as a time sharing system, sharing CPU time
evenly among a number of tasks.
- Semaphores
Semaphores can be used to exchange signals between tasks.
RTKernel-32 supports counting, binary, event, resource, and mutex
semaphores. Semaphores may also be used by interrupt handlers.
- Mailboxes
Mailboxes can be used to exchange data between tasks. Mailboxes may
also be used by interrupt handlers (e.g., for data buffering).
- Message passing
Message passing can be used to exchange data between tasks directly.
This synchronizes the tasks involved.
- Real-Time Memory Management
RTKernel-32's Memory Pools allow memory allocation and deallocation
within guaranteed time limits and can even be used by interrupt
handlers.
- Portability
RTKernel-32 is completely written in ANSI C; only some hardware or
CPU dependent drivers contain assembler code. Since the portable
kernel, which is written completely in ANSI C, has been implemented
separately from hardware or systems dependent drivers, RTKernel-32
can easily be ported to other environments.
- Three different APIs
RTKernel-32's application interface has three different forms:
RTKernel-32 native, RTKernel-C for DOS, and Win32. Depending on your
requirements for compatibility with other systems, you can select
the appropriate API. It is even possible to mix different APIs
within the same program.
|