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

Nut/OS Requirements


CPU

Nut/OS is designed to run on Atmel's AVR CPUs ATmega103 and ATmega128. It may run on other AVRs, but this has not been tested. At least the thread switching and timer handling need to be ported.

CPU frequencies ranging from 3.6864 to 14.7456 MHz have been tested. Note, that selectable baudrates depend on this frequency.

By default, Nut/OS requires the extra 32.768 kHz clock crystal. It is used the automatically determine the CPU clock for baudrate calculation and timer handling. It may be used in later versions for timer wakeup. Anyway, it is possible to run Nut/OS without this crystal, but you need you rebuild the libraries after setting NUT_CPU_FREQ to the CPU clock frequency in the Makedefs file.

Memory

Because Nut/OS is highly dynamic, there's no simple calculation to determine ROM and RAM requirements. The following table lists required memory sizes of two application samples, which are part of the Nut/OS distribution.

Module Simple HTTP Server
ROM RAM ROM RAM
Application 2 0 1522 582
Init 472 3 472 3
Timer 1342 15 1342 15
Print 0 0 2770 64
Event 0 0 562 0
Thread 960 6 960 6
Heap 540 4 540 4
Filesys 0 0 272 0
Device 0 0 460 2
UART 0 0 1536 560
IRQ 2670 272 2670 272
HTTP 0 0 3064 1047
DHCP 0 0 2026 18
SoStream 0 0 294 0
TCP 0 0 7226 23
UDP 0 0 980 2
ICMP 0 0 384 0
IP 0 0 2124 16
ARP 0 0 1320 8
Ethernet 0 0 3896 115
C Runtime 202 0 3402 49
Files 0 0 23716 109
Total 6186 310 61538 2895

The listed RAM requirements show static RAM only. This RAM must fit in the lower 4k on-chip RAM. The remaining internal and all external RAM is exclusively occupied by the heap management for dynamic allocation. How much heap space will be allocated by Nut/OS during initialization depends on the library parts used by the application. After the HTTP Server has started all thread, there are about 20k RAM left for handling browser requests, while the Simple application has nearly 30k heap space available.