For
Your Embedded Development Needs:
Fusion Embedded RTOS Features
The Fusion
Embedded RTOS is a full featured Embedded
OS that provides the following general capabilities:
Tasks
Tasks are individual units
of software with a dedicated purpose that share
common system resources. The Embedded RTOS grants
access to the shared system resource based upon
their request for them compared to other pending
requests. Each individual task is assigned a priority
level according to its importance within the system.
Each task has its own dedicated stack.
Stack
Sharing
To reduce total memory usage,
the Fusion Embedded RTOS is designed to share
a common stack for the Hardware Interrupts, the
Software Interrupts and the Background Task.
Communications
& Synchronization
Each task is created independently
from any other task, however it may need to share
information or otherwise communicate with other
tasks. Fusion Embedded RTOS provides the following
methods to accomplish this.
- Suspend/Resume
- Semaphores
- Mutexes
- Events
- Mailboxes
- Queues
- Packet
Handlers
Time
Management
Almost every embedded system
will require some form of time management. Fusion
Embedded OS provides an extensive set of time
management capabilities. All Fusion Embedded RTOS
objects that have the capability of task suspension
have an optional time value to limit the suspension
time. This time value is based upon the Fusion
RTOS Tick timer. There is also a complete suite
of software timers to handle events. These timers
can be configured to for one shot or as a periodic
timer. Fusion RTOS tracks system time in seconds.
Using this with Time section of the Fusion
Standard C library provides
for a complete time management solution.
Memory
Management
Fusion's memory management
capability is fully dynamic. The user can specify
any number of independent memory pools. These
pools provide variable memory allocation capabilities.
Any task may suspend on a memory pool when memory
is not available. Memory pools have statistical
tracking capabilities to determine current and
worst case memory usage. To reduce/eliminate memory
fragmentation, Fusion memory manager uses a method
of contiguous memory recombination.
Packet
Management
Many of today's embedded
designs require the processing of some form of
streaming data. Fusion Embedded RTOS provides
several methods to handle streaming data while
minimizing processor loading. Since most streaming
data use packets of a fixed size, Fusion RTOS
has packet pools. These are preallocated packets
that are all the same size managed in a pool.
The time to allocate/deallocate a packet is deterministic
and an order of magnitude faster than a memory
pool. To synchronize between interrupts and the
tasks processing the data, packet handlers are
used. These fusion objects only pass the pointer
to the packet not the actual packet to the waiting
task. This greatly reduces processor loading by
creating systems that utilize zero data copies.
Interrupt
Control
Fusion Embedded RTOS provides
a flexible interrupt control mechanism that is
fast and deterministic. It allows the user to
create their interrupt handler in C or Assembly.
It allows all interrupts to call any Fusion RTOS
object that does not suspend. Thus task synchronization
can occur directly from a Fusion RTOS managed
interrupt.
- Optional
Interrupt logging
- Support
for nested interrupts
- Dedicated
interrupt stack shared with SWIs and Backgroud
task.
- Supports
delayed task rescheduling
- Provides
a method to bypass Fusion Interrupt Dispatcher
Driver
Model I/O Management
The Fusion Driver Model,
FDM, is an extensible and portable, Ansi-C compatible
model that provides a framework of organizing
peripheral devices into a common subsystem. It's
architecture is simple to use, easy to adapt and
reusable across any platform, since it is not
directly tied to any hardware. It abstracts this
mechanism through objects which allows the user
to tie a front and backend specific to their operating
environment.
System
Diagnostics
Fusion Embedded RTOS provides
extensive internal diagnostic capabilities, including:
- Statistical
tracking for all memory usage (current and worst
case usage)
– All Stacks
– Memory Pools
– Packet Pools
– Queues
– Packet Handlers
– Circular Buffers
- Provides
Data logging capabilities for:
– Interrupts
– Task Switches
– RTOS Object calls
– Error Conditions
– User specific data logging
Standard
C Library
Fusion Embedded RTOS Provides
an extensive, reentrant, Thread safe, small footprint,
integer, Fusion
Standard C library.
The capabilities are listed below in categories.
- Time
- Stdio
- Stddir
- Stdlib
- String
- Character
XML
SAX Parser
Fusion RTOS includes the
Fusion Embedded
XML SAX Parser. This
is a small, fast, intuitive XML parser that decodes
XML documents into C language structures that
are easy for designers to integrate into their
embedded applications.
Command
Line Debug SHELL
Fusion Embedded RTOS includes
the Fusion Command Line Debug Shell. This is a
uart driven interface from the PC to the embedded
product running Fusion RTOS. Fusion SHELL provides
general commands such as reading and writing to
memory. It also provide mechanisms for the user
to add additional commands. Fusion SHELL is also
used when additional Fusion products are integrated
with Fusion RTOS. Each product has command list
useful for debugging the specific Fusion Software
Product.
Name
Server
Fusion RTOS includes the
name server. This is an RTOS object that translates
between Fusion Object pointers and Character names.
However, it is not limited to Fusion RTOS Objects.
It can be used for any user specified function.
Pass in a name to any previously installed pointer
and the Name server will return that pointer.
Copyright © 2004 Unicoi Systems, Inc.
Email webmaster@unicoi.com
with your site questions/comments.
|