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:
* Coperative multithreading
* Deterministic interrupt response times
* Priority based event handling
* Periodic and one-shot timers
* Dynamic memory management
Main features of the TCP/IP stack are:
* Base protocols Ethernet, ARP, IP, ICMP, UDP, TCP and PPP
* User protocols DHCP, DNS, SNTP, SMTP, FTP, SYSLOG, HTTP and others
* Socket API
* Host, net and default routing
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:
* Ethernet controllers
* UART devices with RS-232 handshake and RS-485 mode
* SPI, I2C and CAN busses
* MultiMedia and SD cards
* Hardware and software audio codecs
* Analog-to-digital converters
* Serial flash memory
* Realtime clocks
* Infrared remote controls
* Watchdogs and reset controllers
* Character displays
* GPIO and interrupt control
* Modem control
Note, that not all drivers may be available on all platforms. The following microcontrollers are actively supported:
* ATmega103, ATmega128, ATmega2561, AT90CAN128
* AT91SAM7S, AT91SAM7SE, AT91SAM7X
* AT91SAM9260, AT91SAM9XE
* Gameboy Advance
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:
* C99 integer types and optional floating point I/O
* File system support, including FAT
* Low level functions and streams on devices, TCP sockets and files
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:
* Graphical user interface
* USB stack
* IPv6
* Encryption
* Wireless LAN
Source:
http://www.ethernut.de/en/firmware/nutos.html