Specifications
It appears that most of the TCP/IP software discussed on the internet seemed to use
TCP/IP with an operating system due to ease of development and allows for more
elegant solutions. The decision that resulted from this search was to use the Ethernut
solution. This was because of the hardware features described in the hardware chapter
and also the features the software provided.
5.2 The Ethernut Software
The software provided on the Ethernut platform is split into two functional components,
the Nut OS and the Nut Net [9]. The Nut OS is a simple real time operating system that
provides multithread capabilities, event queues, memory management and a device
driver interface with stream I/O functions. Thread management provides the ability to
customise each threads stack and priority. Event queues allow interrupt events to be
handled by the operating system, which stores them in a que and services the requests in
orders of priority. The memory management allows for the control of how memory
resources are shared between the threads, the operating system and a stack. The device
driver interface allows the user to create an abstraction layer from the physical device.
For example the serial port is used as a device (a Nut Device); to initialise the port the
driver is installed and to use the port the user writes to the device driver interface.
The Nut Net is a programming interface to a TCP/IP stack that provides the following
features:
ARP, IP, UDP, ICMP and TCP protocols over Ethernet
Automatic configuration via DHCP
A web server with file system access to the flash ROM space and CGI functions
A TCP and UDP Socket API providing standard functions such as connect,
accept, send and receive.
The applications developed with the Nut OS and Nut Net is compiled using the AVR-
GCC compiler, a free open source compiler available from AVRFreaks [15].
21










