Sonntag, 30. Dezember 2007

One small step for arm, but ...

Der Durchbruch ist gelungen !

Nachdem ich mich mehrere Tage mit dem Erstellen und compilieren der Toolchain
geärgert habe, habe ich ine unter OpenSuse 10.3 lauffähige fertige Kompilierung
gefunden, bei uCLinux. Wenn man dort das File arm-elf-tools-20030314.sh herunterlädt und ausführt, bekommt man alle notwendigen Tools (gcc, binutils, newlib, elf2flt) die man für eine Entwicklung benötigt.

Also:
1. OpenSuse 10.3 installieren (geht bestimmt auch mit anderen Distributionen)
2. Toolchain herunterladen und ausführen als root mit sh ./arm-elf-tools-20030314.sh
3. ein kleines "Helloworld" mit Makefile schreiben:

helloworld.c:
#include
void main(int argc, char **argv)
{
FILE* pFile=NULL;
int i=0;

pFile=fopen("/mnt/kbipd/tmp/helloworld.txt","wa+");
for (i=0;i<1000;i++)
{
fprintf(pFile,"Hello World!!\n");
}
fclose(pFile);
}

Makefile:
EXEC = helloworld
OBJS = helloworld.o
SOURCE = helloworld.c
CC = arm-elf-gcc
CFLAGS =
LDFLAGS= -Wl,-elf2flt
LDLIBS= -lc


all: $(EXEC)

$(EXEC): $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)

$(OBJS): $(SOURCE)
$(CC) $(CFLAGS) -c $(SOURCE)


clean:
-rm -f $(EXEC) *.gdb *.o

4. mit "make" alles bauen. Sieht dann so aus:
# make
arm-elf-gcc -c helloworld.c
helloworld.c: In function `main':
helloworld.c:3: warning: return type of `main' is not `int'
arm-elf-gcc -Wl,-elf2flt -o helloworld helloworld.o -lc
#

5. das helloworld als Ersatz über das ftpd auf dem Flash schreiben, also nach
...\kbipd\bin\ftpd
6. Flashkarte in das IPDrive einsetzen und starten.
7. Ein ftp auf das IPDrive probieren (sollte nicht gehen !)
und dann IOPDrive wieder ausschalten
8. Auf dem Flash sollte nun im Verzeichnis
"/kbipd/tmp/" eine helloworld.txt
zu finden sein mit 1000 mal "Hello World !" drin.

Ich wünsche allen eine guten Rutsch ins Jahr 2008 !

Fossi


Keine Kommentare: