Thursday, February 7, 2008

Free and Open source RTOS and other for AVR

RTOS

While an Operating System, or RTOS, isn't necessary to write software for
the AVR, there may be times when it is desirable. Below, are some links for
free or open source operating systems / kernels for the AVR. Note that this
may not be a complete list.



AvrX


AvrX is a Real-Time Multitasking Kernel.



EtherNut - Nut/OS


Ethernut is an Open Source Hardware and Software Project for building
Embedded Ethernet Devices. It contains Nut/OS which is an intentionally
simple RTOS for the ATmega128, which provides a minimum of services to run
Nut/Net, the TCP/IP stack.



FreeRTOS


FreeRTOS is a portable, open source, mini Real Time Scheduler (or mini
RTOS kernel).



TinyOS


TinyOS is a component-based runtime environment designed to provide
support for deeply embedded systems which require concurrency intensive
operations while constrained by minimal hardware resources.



Contiki


Contiki is an Internet-enabled operating system and desktop environment
for a number of smallish systems.



XMK - eXtreme Minimal Kernel


XMK is a preemptive multitasking scheduler/kernel for 8bit
microcontrollers. Its goal is to provide a bare bones RTOS with a small
enough footprint (RAM+ROM) to run on 8bit microcontrollers.



pico OS


pico OS is a highly configurable and very fast real time operating system
(RTOS). It targets a wide range of architectures, from very small 8 bit
processors and microcontrollers up to very huge platforms. An AVR port is
available.



uSmartX


uSmartX is a non-preemptive, multitasking, priority based RTOS. It features
mechanisms for inter-task communication and basic task and time control
functions.



Super Simple Tasker (SST)


This is an implementation of a lightweight scheduler so called "Super
Simple Tasker" - SST. The idea is taken from the Robert Ward's article -
"Practical Real-Time Techniques" http://www.quantum-leaps.com/resources/Ward03.pdf.
The SST allows to significantly reduce needs for precious RAM and ROM and
still allows to keep a real time characteristic of the scheduler (e.g.
tasks prioritization and preemption).



Other


Here are some links to free or open source components that may be useful.



uIP - TCP/IP Stack for Embedded Microcontrollers


uIP is an implementation of the TCP/IP protocol stack intended for small
8-bit and 16-bit microcontrollers. It provides the necessary protocols for
Internet communication, with a very small code footprint and RAM
requirements - the uIP code size is on the order of a few kilobytes and RAM
usage is on the order of a few hundred bytes.



LibTomCrypt


LibTomCrypt is a fairly comprehensive, modular and portable cryptographic
toolkit that provides developers with a vast array of well known published
block ciphers, one-way hash functions, chaining modes, pseudo-random number
generators, public key cryptography and a plethora of other routines.
LibTomCrypt has been designed from the ground up to be very simple to use.
It has a modular and standard API that allows new ciphers, hashes and PRNGs
to be added or removed without change to the overall end application. It
features easy to use functions and a complete user manual which has many
source snippet examples. LibTomCrypt is free for all purposes under the
public domain. This includes commercial use, redistribution and even
branching. [Editor's Note: This package was reported to have been able to
build for AVR, but it's not completely verified.]



Protothreads


Protothreads are extremely lightweight stackless threads designed for
severely memory constrained systems such as small embedded systems or
sensor network nodes. Protothreads provide linear code execution for
event-driven systems implemented in C. Protothreads can be used with or
without an underlying operating system.

Ref: WINAVR Manual


Powered by ScribeFire.

No comments: