Difference between revisions of "Documents/Requirements"

From Nutwiki
Jump to: navigation, search
(Created page with "<div id="content"> = Nut/OS Requirements = <br /> == CPU == Nut/OS is designed to run on Atmel's AVR CPUs ATmega103 and ATmega128. It may run on other AVRs, but this has n...")
 
(No difference)

Latest revision as of 09:59, 13 July 2017

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.