MSP430 Real Time Operating Systems Overview
A real-time operating system (RTOS) is a multitasking operating system which provides scheduling algorithms to help a software developer guarantee deadlines of system tasks. The most efficient algorithm that is written for performing the task switching will have the least amount of overhead. When choosing an RTOS that suits your MSP430 application, you may want to consider the following:
- Latency for task switching
- Number of tasks that can be handled
- Memory footprint for core and memory addition for each additional task
- Shared priority task vs. unique priority task
- How easy does the RTOS adapt to using another peripheral's interrupt?
- Is there an idle state and/or do you need one?
The µC/OS-II™: The Real-Time Kernel, is a highly portable, ROMable, very scalable, preemptive real-time, multitasking kernel (RTOS) for microprocessors and microcontrollers. It can manage up to 255 tasks and is provided by Micrium, a company that specializes in embedded software components.
Contiki is an open source, highly portable, multi-tasking operating system for memory-efficient networked embedded systems and wireless sensor networks. Contiki has been used is a variety of projects, such as road tunnel fire monitoring, intrusion detection, water monitoring in the Baltic Sea, and in surveillance networks. Contiki is designed for microcontrollers with small amounts of memory. A typical Contiki configuration is 2 kilobytes of RAM and 40 kilobytes of ROM. Contiki provides IP communication, both for IPv4 and IPv6. Contiki and its uIPv6 stack are IPv6 Ready Phase 1 certified and therefor has the right to use the IPv6 Ready silver logo. To ease software development and debugging, Contiki provides three simulation environments: the MSPsim emulator, the Cooja cross-layer network simulator, and the netsim process-level simulator. The development process for software for Contiki typically goes through all three simulation stages before the software runs on the target hardware.
The CMX-Tiny+™ Real-time Multi-Tasking OS is the microprocessor version of the CMX-RTX. It was made to fit within the small amount of onboard RAM, being in the range of 512 bytes and up. It is provided by CMX Systems, Inc., a company that specializes in tools needed to program embedded applications.
The DioneOS is preemptive Real-Time Operating System that was optimized for msp430 microcontroller. It takes into account extended width of MSP430X registers (i.e. 20 bits), so the system is not limited to work with application in low flash (< 64KB) but can handle code in high flash. Efficiency is the main feature that was always in mind during the DioneOS system development. In order to obtain that feature part of code that is responsible for context switching was written in assembler. Execution time of this part was determined by cycle counting of each opcode and confirmed with logic analyser. In a few iterations the code was tuned in order to obtain shortest run. This optimization provided fast switching between threads as well as short latency in signalling from ISR to waiting thread (results of efficiency measurements).
The DioneOS is available in source code form so it can be configured on compilation time. Using '#define' switches user decides what feature are compiled or removed from built system core. He can create development or release version, balancing between debugging facilities and performance.
The system is provided by ELESOFTROM company.
embOS is a priority-controlled real-time operating system, designed to be used as foundation for the development of embedded real-time applications. It is a zero interrupt latency*, high-performance RTOS that has been optimized for minimum memory consumption in both RAM and ROM, as well as high speed and versatility. embOS is fully source-compatible on different platforms (8/16/32 bits), making it easy to port applications to different CPUs. (* High priority interrupts are never disabled by embOS).
It is provided by SEGGER Microcontroller GmbH & Co.KG, a company that specializes in software development tools and ANSI "C" software components for embedded systems. embOSView is an RTOS analysis tool also provided by this company. You can find out more about both embOS and embOSView.
FreeRTOS™ is a portable, open source, royalty free, mini Real-Time Kernel - a free to download and free to deploy RTOS that can be used in commercial applications. Free support is available through the FreeRTOS forums and paid support is available through a collaboration between FreeRTOS.org and their partner company - WITTENSTEIN HighIntegritySystems.
IAR PowerPac is a fully-featured real-time operating system combined with a high performance file system. IAR Systems is a company that specializes in software tools for embedded systems and is also the provider of IAR Embedded Workbench, an integrated development environment (IDE) for the MSP430. IAR PowerPac is tightly integrated with IAR Embedded Workbench.
IAR Embedded Workbench Kickstart is a free IDE available for download from TI's website which includes a code-size limited C-Compiler, unlimited Assembler, FET Debugger, and Simulator. The Kickstart version already includes the evaluation version of IAR PowerPac for MSP430™ MCU.
QP™ is a family of very lightweight, open source, state machine-based frameworks for embedded microprocessors. Current versions of QP™ are: QP/C™ and QP/C++™, and the ultra-lightweight QP-nano. QP™ can work with or without a traditional OS/RTOS. In the standalone configuration, QP™ can completely replace a traditional RTOS. It is provided by Quantum Leaps™, LLC, a second-generation open source company.
Salvo™ is an RTOS with modest ROM and miniscule RAM requirements that enable event-driven, priority-based, multitasking applications. It is provided by Pumpkin, Inc., a company that specializes in development tools for embedded solutions.
TinyOS is an open-source operating system designed for wireless embedded sensor networks. Its component library includes network protocols, distributed services, sensor drivers, and data acquisition tools – all of which can be used as-is or be further refined for a custom application. It originated as a University of California Berkeley research project, but has since grown to have a community of developers and users.
ChibiOS/RT is an efficient RTOS designed for deeply embedded applications. It offers threads, mutexes, semaphores, messages, event flags, timers, queues, I/O abstraction layer. Cortex-M3 and MSP430 are currently supported.
BOS – B.lu operating System, is an operating system dedicated to small microcontrollers and CPUs without MMU. Actually is dedicated to Texas Instruments MSP430 microcontrollers.
FunkOS is a multi-threading RTOS for 8-32 bit MCUs including MSP430 and Cortex M3. Key features include preemption, periodic events, device driver HAL, and resource protection. Now featuring a 2D graphics framework with bitmapped font support.
SYS/BIOS is a scalable RTOS from Texas Instruments that supports all the TI embedded processor families. SYS/BIOS is the successor to the DSP/BIOS RTOS that only supported DSP processors.
While real-time kernels have been around for decades, most have failed to evolve and innovate. Sometimes it is a challenge to even tell them apart. Abassi is the next generation real-time kernel. Using a greenfield approach to kernel design, the result is a feature-rich kernel without any of the limitations of existing products. The fully scalable feature set is unmatched in the industry, all wrapped in a highly compact memory footprint.
MSS (Microcontroller Simple Scheduler) is an open source, light-weight multi-tasking scheduler with basic features such as timers, event flags, message queues, memory blocks, and semaphores. It supports both cooperative and preemptive scheduling mechanism while maintaining the small code size (around 1 KB flash and 120 bytes RAM for MSP430 value line devices). Visit the homepage and download the demo on the following link: http://code.google.com/p/mcu-simple-scheduler/