[En-Nut-Discussion] Installing the Unix emulation of Ethernut HOWTO

Michael Müller mmueller at se.eecs.uni-kassel.de
Fri Apr 13 18:25:39 CEST 2007


Hi Ethernut users,

some time ago I already tried out the Unix emulation of Ethernut but
with littel success. Now I searched the web and also the Ethernut
website but only found very few information about the state and how to
build such a system. As the compile process failed with my configuration
I began to write little step by step instructions with fixes etc. which
maybe is also useful for the community.

Have fun
 Michael


Installing the Unix emulation of Ethernut

Software versions: 
 - GCC 4.03 (Ubuntu Dapper)
 - Ethernut 4.2.1

1) Extract the source code of the Ethernut OS
   tar xvfj ethernut-4.2.1.tar.bz2

2) Enter the new folder and prepare the system for Unix emulation
   cd ethernut-4.2.1
   ./nutsetup
 Enter 5 for Unix Emulation

3) Fix some trouble makers 

The 4.x version of the GCC compiler seems to be more sensitive to C-Code
correctness than former versions. This results in error messages while 
trying to compile the NutOS directly.

Found issues in the sourcecode and fixes to make it run:

 - arch/unix/dev/ostimer.c
   missing return at the end of function NutTimerEmulation - solution:
   add 
    return(NULL);
   at the end of this function

 - arch/unix/os/nutinit.c
   another missing return at the end of function NutTimerEmulation - 
   solution:
   again add 
    return(NULL);
   at the end of this function

 - the missing return at some functions error also appears at some
   example applications. Eg. with many THREAD definitions it is 
   necessary to add a - useless because actually never reached - 
   return value to the end of concerning functions.

 - error messages at different device drivers with unsupported direct 
   hardware access - quick and dirty solution:
   remove the following files (line beginning with SRCS = )from the 
   makefile in the dev/ folder and prevent the compilation of the - 
   in this environment - useless drivers 
    twbbif.c npl.c nplmmc.c sbimmc.c

4) Compile the sources and install the libraries

    cd lib
    make
    make install

5) Adaptations at the example applications

   By default hex-files for usage with mikrocontroller hardware 
   are built. For Unix emulation this hardly makes sense so 
   change the target definition of the application Makefile 
   from .hex to .elf
    TARG =  $(PROJ).elf

6) Run the application

   The built application can directly be executed
    ./application.elf
   and should be debuggable this way more easily than with the
   embedded hardware.






More information about the En-Nut-Discussion mailing list