Fox Board
Das Fox Board von ACME-Systems aus Italien ist ein kleines Prozessor Board mit einem ETRAX 100 LX Prozessor von Axis.
Axis bietet den Baustein als SoC in einer Version mit 4 MB Flash und 16 MB RAM und einer Version ohne integriertem Speicher. Ausserdem sind auf dem System USB Ports (2 x 1.1) Ethernetschnittstelle, 3 serielle Schnittstellen ein Timer und diverse IO Ports integriert. Auf der Webseite gibt es einen Angepassten Linux Kenel mit den entsprechenden Treiber sowie einer kompletten Entwicklungsumbgebung für den Prozessor. Dieser wird auch für das Fox Board angeboten.
Erste Schritte
Das Board ist in der Fabrik bereits mit einer Software geladen worden. Aber natürlich möchte ich lieber ein selbstkompiliertes Image benutzen.
Axis, der Hersteller des Prozessors, bietet einen angepassten gcc-Compiler und gdb-Debugger an. (CRIS). Bevor mit der Entwicklung eigener Programme begonnen werden kann, müssen die Tools installiert werden.
Die Installation ist detailiert auf der Webseite von ACME-Systems beschrieben. Bevor mit dem Konfigurieren und Compilieren begonnen wird, sollte mit dem Befehl:
./sdk_update
Die Entwicklungsumgebung auf den neusten Stand gebracht werden. Vorsicht, falls bereits Konfigurationen vorgenommen worden sind, müssen die zuvor mit
./acme_config save
gesichert werden.
Danach kann mit den Befehlen:
make menuconfig
make kernelconfig
make busybox
Hello World!
So und jetzt muss natürlich ein erstes selbstgeschriebenes Hello Wolrd Programm her! Auf der ACME Webseite ist ein ausführlichers Howto vorhanden. Hier meine Vorgehensweise:
Die Umgebungsvariable AXIS_TOP_DIR muss auf das Basisverzeichnis der AXIS SDK Zeigen. Auf meinem Computer ist das z,B. /home/lorenz/devboard-R2_01. Das kann mit dem Befehl
export AXIS_TOP_DIR=/home/lorenz/devboard-R2_01
gemacht werden. Soll die Variable bei jedem Start gesetzt werden, empfiehlt sich, die folgenden Zeilen in die .bashrc Datei aufzunehmen so das bei jedem Start der Bash die Variabeln gesetzt werden.
cd devboard-R2_01 export AXIS_TOP_DIR=`pwd` echo "Prepending \"$AXIS_TOP_DIR/tools/build/bin\" to PATH." export PATH="$AXIS_TOP_DIR/tools/build/bin:$PATH" echo "Prepending \"/usr/local/cris/bin\" to PATH." export PATH="/usr/local/cris/bin:$PATH" export AXIS_KERNEL_DIR="$AXIS_TOP_DIR/os/linux" cd ~/
danach kann ein Verzeichnis für das Helloworld Programm mit 'mkdir helloword' erzeugt werden und mit 'cd helloworld' in das Verzeichnis gewechselt werden.
Das Makefile und das test.c Programm können in dieses Verzeichnis kopiert werden.
Jezt müssen die fürs Zielsystem nötige Konfiguration gewählt werden. Bei der aktuellen SDK Version ist ein 2.6er Kernel mit der GNU-C-Library einkompiliert. (Ältere Versionen haben beim 2.6er Kernel noch die uCLib benutzt.)
Die Variabeln werden im mitgelieferten Makefile /devboard-R2_01/tools/build/Rules.axis gesetzt. Dieses muss vom Helloworld-Makefile 'includet' werden. (Zeile: include $(AXIS_TOP_DIR)/tools/build/Rules.axis)
Mit dem Aufruf von make cris-axis-linux-gnu werden die Variabeln gesetzt.
Ein weiterer make Aufruf ohne Parameter compiliert das File.