Ethernut Home Hardware Firmware Tools Download Community
 
 
Search | Legals | Deutsch

Nut/OS

Features

Nut/OS is based on an intentionally simple RTOS kernel, which provides a minimum of services to run Nut/Net, the TCP/IP stack. It's features include:

Main features of the TCP/IP stack are:

Nut/OS is a modular operating system. Instead of providing a fixed kernel block, all code is packed in libraries. Only those parts are linked to the final binary image, which are directly or indirectly referenced by the application. This guarantees the lowest possible footprint. Ernst Stippl regularly publishes related figures on his web site at www.es-business.com/ethernut/.

Standard C libraries like newlib or avr-libc are supported and allow to write highly portable applications. While direct hardware access and native interrupts are possible in application code, the system offers ready-to-use drivers for a large number of devices, including:

Note, that not all drivers may be available on all platforms. The following microcontrollers are actively supported:

The system is highly configurable and may work on other hardware too. Support for AVR32 is currently under development and a version for the Freescale Coldfire may become available as well. In addition it is possible to run Nut/OS applications on Linux.

In order to hide hardware specific details from application code, an almost complete C stdio API is available, which provides:

Nut/OS is perrmanently enhanced by an active community. The following features are currently not available, but planned for future releases or currently under development:

Additional Documents

New or recently updated

Nut/OS Software Manual
How to install and use Nut/OS.

SPI Bus Support
Technical details about SPI drivers.

ARM Exception Handling
Nut/OS doesn't provide any exception handling by default. This document shows how to implement an exception handler within your application.

ARM GCC Inline Assembler Cookbook
The GNU C compiler for ARM RISC processors offers to embed assembly language code into C programs. This cool feature may be used for manually optimizing time critical parts of the software or to use specific processor instruction, which are not available in the C language.

More documents

LED control
A beginner's guide to connecting external hardware.

Floating Point Support
The kernel won't need it, but your application may want to read or write floating point numbers.

Using RS485 with Ethernut 2
Jumper settings, configuration and sample code.

Running Nut/OS on the AT91SAM9260
A step by step guide. Preliminary.

Running Nut/OS on the AT91SAM7X
Access your MultiMedia Card on the AT91SAM7X Evaluation Kit via FTP.

Running Nut/OS on the ATmega2561
Preliminary support for the ImageCraft Compiler running on Windows.

Using the Hardware Watchdog
How to implement a timer interrupt handler for Ethernut 3.

AT91 Timer Interrupts
How to implement a timer interrupt handler for Ethernut 3.

Using the PHAT File System
Making your MMC interface on Ethernut 3 work.

Using UDP Broadcasts
This paper presents a simple tool to discover all Ethernuts in a local network.

Partly outdated

Nut Programmable Logic
This tutorial teaches you to modify the CPLD on Ethernut 3.

MP3 Streaming
A step by step guide on how to build a stand-alone Embedded Internet Radio.

Setting up PPP
This paper provides helpful information about how to get started with Ethernut's PPP.

SAM Internet Radio
Implementing an Internet Radio on the AT91SAM9260 and AT91SAM7X Evaluation Kits.

Nut/OS Events
This paper explains Nut/OS event handling internals.

CPU and Memory Requirements

Nut/OS Threads, Events and Timers
Recommended reading for application programmers.

Nut/OS Memory Considerations
Includes a design proposal for bank switched RAM.