On Time RTOS-32 Documentation
Welcome
RTTarget-32
RTKernel-32
RTKernel-32 Programming Manual
Introduction
Multitasking, Real-Time, and RTKernel-32
Module RTKernel-32
Alternate APIs for RTKernel-32
Supplemental Modules
RTKernel-32 Drivers
Demo Programs
Advanced Topics
Typical Error Sources
Error and Information Messages
RTKernel-32 Reference Manual
RTFiles-32
RTIP-32
RTPEG-32
RTUSB-32
|
Introduction
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.
- 256 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.
- Multiprocessor Support
RTKernel-32 includes two schedulers: the single-CPU scheduler and a multiprocessor scheduler which can manage up to 32 CPUs. The multiprocessor scheduler automatically distributes threads among all available CPUs. If an OpenMP compatible compiler such as Microsoft Visual Studio 2005 is used, parallel algorithms can be distributed onto all available CPUs automatically through compiler directives.
- 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. Different APIs can be mixed within the same program.
Multitasking, Real-Time, and RTKernel-32
|