Nut/OS & CrossWorks
How to install
How to build
Download 5.1.0
Download 4.10.x
Download 4.8.9


Nut/OS is a modular, open source, real time operating system for embedded platforms. It is easily configurable and optimized to run on 8 and 32 bit microcontrollers.

The well documented software is an Open Source implementation of a Real Time Operating System called Nut/OS and a TCP/IP protocol suite named Nut/Net. Several application examples are provided, including an embedded Webserver, a simple RS232 to TCP/IP gateway and an Internet Radio playing MP3 streams.

For more information take a look at the Ethernut project. Unfortunately for the moment CrossWorks for ARM is not supported by the Nut/OS configurator. Therefore you will find some "patches" here which makes possible to use Nut/OS with the CrossWorks for ARM toolchain from Rowley Associates.

This project makes it possible to use CrossWorks for ARM for building and debugging Nut/OS. Therefore a "patch" must be installed over the existing Nut/OS installation.

How to install

Before you can install the patch, you must have installed Nut/OS already. Assumed you have installed Nut/OS in the default directory suggested by the Nut/OS installer you should have the following directory on your hard disk.


For this project I will start with the stable 4.8.3 release. The directory where you have installed Nut/OS will now be called the Nut/OS directory.

Do not mix patch and Nut/OS version, that mean you must not expand a 483 patch over a Nut/OS 4.9.4 version. Patch and Nut/OS must be the same version. The naming of the zip file is give by the following rule:

<nutos version>-rowley-<board>-<date>

Copy the zip file which you can find in the Download section into your Nut/OS directory and expand it here. By expanding the zip file some Nut/OS files will replaced. By the nature of this process, no backup files will be created. Therefore it is your job to backup your Nut/OS installation before.

After expanding the zip file the Nut/OS directory looks like:

Two new directories was created by expanding the zip file. nutbld-rowley-eir will be used to build the libraries and nutapp-rowley-eir for the applications. Here the patch for the ELEKTOR Internet Radio (EIR) was installed.

How to build

It is required that you are familiar with the workflow under CrossWorks for ARM. You should know:

  • how to install a Board Support Package (BSP)
  • how to compile a solution
  • how to download / debug / start an application

Next I will show you some screen shots from CrossWorks for ARM v2.0.3 which I have used for creating this project, but it works with v1.7b21 too.

Make sure that the Board Support Package (BSP) for the Atmel AT91SAM7 CPU is installed. Therefore use "Tools / Show Installed Packages" inside CrossStudio. The result should look like:

If the Atmel AT91SAM7 CPU package is not installed, use "Tools / Install Packages..." and install the requiered package before.

If the BSP is installed, we will start by building the Nut/OS libraries. Therefore use
"File / Open Solution..." and open the nut483_lib_eir.hzp file which can be found inside the <Nut/OS directory>\nutbld-rowley-eir directory. The "Project Explorer" window will look like:

The Debug build is selected. To build the libraries, right click with the mouse at
Solution nut483_lib_eir and select "Rebuild":

This will build all Nut/OS libraries in Debug mode. Now change to "V4T ARM LE Release" and build the libraries in Release mode. The Debug and Release libraries will be stored inside the following directory:

<Nut/OS directory>\nutbld-rowley-eir\lib

The libraries are finished, and you can start to build the applications now. We will start with the httpd application. Therefore use "File / Open Solution..." and open the httpd.hzp file which can be found inside the following directory:

<Nut/OS directory>\nutapp-rowley-eir\httpd\prj

The "Project Explorer" window will look like:

Make sure that "ARM RAM Debug" mode is selected:

To build the application, right click with the mouse at Project "httpd" and select "Rebuild":

The httpd application is now build in Debug mode and can be downloaded to the EIR board. If you bild the application in "ARM Flash Release", a hex file can be found in the following directory:

<Nut/OS directory>\nutapp-rowley-eir\httpd\prj\ARM Flash Release

The other applications can be build in the same way.


If you need support, take a look here:


NutOS 5.2.2-1 - ELEKTOR Internet Radio (20140111-Beta) (118 KB)

NutOS 5.2.2-1 - STM3220G-EVAL (20140111-Beta) (98 KB)

NutOS 5.2.2-1 - STM3240G-EVAL (20140111-Beta) (98 KB)

Download 5.1.0

The Embedded Web Radio project is included too, which can be found at SourceForge. Here the trunk version was used.

NutOS 5.1.0 - ELEKTOR Internet Radio (20130825) (479 KB)

Download 4.10.x

Now with UPnP to demonstrate multicast and UPnP functionality with the httpd example. The Embedded Web Radio project is included too, which can be found at SourceForge. Here the trunk version was used.

NutOS 4.10.1 - ELEKTOR Internet Radio (20111201) (555 KB)

NutOS 4.10.2 - ELEKTOR Internet Radio (20120406) (642 KB)

NutOS 4.10.3 - ELEKTOR Internet Radio (20130824) (642 KB)

Download 4.8.9

NutOS 4.8.9 - Ethernut 3.0 Rev-D (20110607) (119 KB)

NutOS 4.8.9 - Ethernut 3.1 Rev-D (20110607) (119 KB)

NutOS 4.8.9 - ELEKTOR Internet Radio (20110607) (517 KB)