SourceForge.net Logo
Quick Links
Hardware Support
Get Started in 2 mins
Documentation
Download Software
License

Tickless Real-Time Operating System (TiROS)

TiROS (Tickless Real-Time Operating System) is a pre-emptive priority based real-time task scheduler for embedded systems with limited memory resources.

It was developed at Sandia National Laboratories and is released as open-source.

It is available under a modified GPL license (eCos open source license) that allows it to be used for commercial purposes at no cost. It requires less than 200 bytes of RAM for typical uses (Exact number is dependent upon number of tasks and hardware; On MSP430 platform, TiROS with 6 tasks needs approx 120 bytes). Thus it can be used where sophisticated free OSes like Linux or eCOS cannot be used. It is more closely comparable in resource usage to FreeRTOS. It provides the following reliability features and real-time capabilities that are not usually found in an RTOS of its class:

  • Hard Priorities: Every task has a unique priority and TiROS schedules tasks in a deterministically predictable manner.
  • Tickless Scheduling: TiROS avoids most context-switching overhead costs by eliminating periodic ticks. In most embedded real-time OSes, there is a trade off between high time-resolution (by increasing tick frequency) and overhead. TiROS does not use ticks and achieves high-time resolution with very low overhead.
  • Prevention of Priority Inversion and Deadlock: TiROS has been designed to provide reliable real-time capabilities. TiROS supports either of two mechanisms for preventing priority inversion.
    1. Immediate Priority Ceiling Protocol (Default): This can prevent priority inversion and deadlock.
    2. Priority Inheritance Protocol (Optional): This can prevent priority inversion.
    The implementation of these mechanisms is described in the TiROS documentation.
Other Features:
  • Multi-tasking Primitives: Tasks have access to synchronization primitives such as mutexes, counting semaphores, message queues, and event flags.
  • Low Memory Usage
  • Low Overhead Interrupts
  • Debugging Capabilities
  • TiROS can run on a Posix system (using the Posix HAL). The hardware independent parts of the system can be developed rapidly and tested thoroughly on a Windows/Linux system before deployment on the embedded system.
What's Not Present: TiROS aims at doing one thing well, that is providing reliable real-time task scheduling with very low resource consumption. As such, it includes no networking, no standardized peripheral access, not even memory management. The user is still free to run RTOS independent networking code (like uip), external memory managers etc, with the appropriate mutexes or critical sections.

Hardware Support

TiROS is written in "C" and is designed to be easy to port to different hardware. The hardware-specific portion of the operating system is separated into a HAL (Hardware Abstraction Layer). The current version of TiROS is available with two HALs:

  • MSP430 family with GCC Compiler.
  • MSP430 family with IAR Compiler.
  • Posix HAL that allows for the use of TiROS on any Posix compliant operating system such as Linux or even Windows NT/XP with Cygwin. This allows for easy simulation and testing of software. This HAL allows TiROS to run within a Posix process.

Getting Started in Two Minutes

  1. Download the software.
  2. There are several example projects. On a Linux or Cygwin system, use a command shell to navigate to any of the subdirectories in the os_examples directory.
  3. Assuming, you have gcc and family already installed, compile the example: Type "make clean; make".
  4. Run the example: Type "./objects-release/os".

Documentation

TiROS has detailed documentation available in html and PDF form.

License and Usage

Copyright 2006 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software.

TiROS is provided open-source under the eCOS open-source license, which is a GPL compatible license, that allows the use of this software in commercial applications. For details on licensing, please see the eCOS License FAQ.

As with eCOS, the license is the GNU General Public License with the following exemption clause:

As a special exception, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other works to produce a work based on this file, this file does not by itself cause the resulting work to be covered by the GNU General Public License. However the source code for this file must still be made available in accordance with section (3) of the GNU General Public License.

This exception does not invalidate any other reasons why a work based on this file might be covered by the GNU General Public License.

Top of page


Related Links