09-08-2012, 11:43 AM
eMOS User Manual
eMOS.pdf (Size: 337.74 KB / Downloads: 32)
INTRODUCTION
eMOS is a Real-Time Operating System (RTOS) from ImageCraft with the following
features:
No limits on most of its functions and features except by the size of the available
SRAM of the target device.
Multitasking kernel with round robin priority-based preemptive scheduling. Up to 4
priority levels defined in binary release. Source release has no preset limits.
System calls use a single kernel stack, minimizing tasks’ stack overhead.
Message passing primitives provide synchronizing and interprocess
communication capabilities, minimizing the problem with asynchronous events
and data copying. Automatic priority inheritance eliminates priority inversion
issues.
Mutex, also with automatic priority inheritance, allows access to critical resources.
System safety features including: memory resource tracking, virtual watchdog
system, and stack checking to help you discover bugs and increase the
robustness of your system.
Additional plug-in modules including System Status task, TCP/IP, USB, File
System, etc. will be created using this underlying OS technology.
Design Philosophy
eMOS is a modern RTOS designed for embedded projects. Features such as a
preemptive kernel, message passing for synchronization and interprocess
communication, and mutex with priority inheritance make for a clean design; use of a
single kernel stack, careful design of the internal data structures and use of compiler
pragma minimizes resource consumption; and system safety features such as stack
checking, virtual watchdog and memory tracking set eMOS apart from other RTOSes.
eMOS can be used on devices ranging from low-end 8-bit AVR microcontrollers with
8K of flash1 and 2K of RAM to 32-bit ARM devices with lots of memory. The kernel API
takes just a few kilobytes and can be used by itself in a minimal system to provide
basic multitasking services.
Product Versions
You license the use of eMOS binary in your products. eMOS is licensed in multiple
versions with no royalties for both commercial and non-commercial uses. Features
such as changing the number of priority levels, or removing the stack checking for
production release are available only in source licenses.
OTHER RESTRICTIONS. The SOFTWARE is not for re-sale. You may not rent,
lease, or sell the SOFTWARE license. Except for the PRO license, you are licensing
the SOFTWARE for use on a single product. Multiple developers working on the same
product require a separate license for each developer unless you purchase a PRO
license, or unless the developers do not use the SOFTWARE at the same time. A
single developer working on multiple products using the SOFTWARE requires a
separate license for each product, unless you purchase a PRO license.
WARRANTY
LIMITED WARRANTY. ImageCraft warrants that the SOFTWARE will perform
substantially in accordance with the accompanying written materials and will be free
from defects in materials and workmanship under normal use and service for a period
of thirty (30) days from the date of receipt. Any implied warranties on the SOFTWARE
are limited to 30 days. Some states do not allow limitations on the duration of an
implied warranty, so the above limitations may not apply to you. This limited warranty
gives you specific legal rights. You may have others, which vary from state to state.
CUSTOMER REMEDIES. ImageCraft’s entire liability and your exclusive remedy shall
be, at ImageCraft’s option, (a) return of the price paid or (b) repair or replacement of
the SOFTWARE that does not meet ImageCraft’s Limited Warranty and that is
returned to ImageCraft. This Limited Warranty is void if failure of the SOFTWARE has
resulted from accident, abuse, or misapplication. Any replacement SOFTWARE will
be warranted for the remainder of the original warranty period or 30 days, whichever is
longer.
NO OTHER WARRANTIES. ImageCraft disclaims all other warranties, either express
or implied, including but not limited to implied warranties of merchantability and fitness
for a particular purpose, with respect to the SOFTWARE, the accompanying written
materials, and any accompanying hardware
.
NO LIABILITY FOR CONSEQUENTIAL DAMAGES
In no event shall ImageCraft or its supplier be liable for any damages whatsoever (including, without limitation,
damages for loss of business profits, business interruption, loss of business
information, or other pecuniary loss) arising out of the use of or inability to use the
SOFTWARE, even if ImageCraft has been advised of the possibility of such damages.
The SOFTWARE is not designed, intended, or authorized for use in applications in
which the failure of the SOFTWARE could create a situation where personal injury or
death may occur. Should you use the SOFTWARE for any such unintended or
unauthorized application, you shall indemnify and hold ImageCraft and its suppliers
harmless against all claims, even if such claim alleges that ImageCraft was negligent
regarding the design or implementation of the SOFTWARE.
STACK CHECKING
A common cause of error in embedded programming is stack overflow. Stacks are
used for local variable allocation and storing function call return addresses. Since the
amount of SRAM is limited, the stack may overflow into space already allocated for
other uses. In a normal C program for the AVR, the hardware stack (which is used for
function calls) may run into the software stack and the software stack may run into the
C global data.
With an RTOS, the situation generally worsens because each task has its own stacks.
However, we can also turn a disadvantage into a big advantage for users: we can
perform stack checking at task switch time and ensure that the stacks overflow have
not occurred. Since eMOS is preemptive, it can catch most if not all of the stack
pointer problems right when they occur. This can be optionally switched off for
production builds (if you have a source license).