LPC2148: libgcc mit software Floating Point Unterstützun

Gast #584780
Lesenswert?

Hallo,

Nach dem Einrichten der Entwicklungsumgebung für ein LPC2148-Board von 
Olimex (Eclipse 3.2, Winarm (gcc 4.1.1) stellte sich heraus, dass die 
libgcc keine software floating point Unterstützung bietet (LPC2148 hat 
keine FPU und daher werden software routinen zur Simulation von float 
Operationen benötigt).

Meine Frage: wo kann ich eine entsprechend kompilierte libgcc mit 
software floating point Unterstützung finden??


Vielen Dank für eure Hilfe....



Grüsse,
H.Hammoud
Admin Persönliche Seite #584799
Lesenswert?

Für ARM7TDMI generiert der Compiler nie Float-Befehle, deshalb ist 
-msoft-float da überflüssig. Das ist AFAIK nur beim ARM9 sinnvoll; wenn 
man da nämlich Float-Befehle verwendet ohne eine Float-Recheneinheit zu 
haben, dann werden diese Befehle i.d.R. vom Betriebssystem emuliert, was 
viel langsamer ist als wenn man dem Compiler gleich sagt dass er die 
Soft-Float-Funktionen direkt einkompilieren soll.

So habe ich das zumindest verstanden.
Gast #584800
Lesenswert?

Hi,

Zunächst Danke für die Antwort.

Wenn ich den Schalter "-msoft-float" setze, dann meldet der Linker die 
Fehlermeldung, dass mein Code software floating points verwendet, 
während libgcc.a für hardware floating points kompiliert ist.

Lasse ich den Schalter "-msoft-float" weg, dann gibt es bei Floating 
Point Operationen Exceptions zur Laufzeit ....


Grüsse,
H.Hammoud
Gast #584811
Lesenswert?

Hallo,

Compiler-Aufurf (ohne "-msoft-float"):
arm-elf-gcc -I../include -O0 -g3 -Wall -c -fmessage-length=0 
-mcpu=arm7tdmi -std=c99

Compilieren und Linken klappt ohne Probleme, aber:

Wenn ich als Beispiel u.a. folgende Code-Zeilen im Programm habe:
float x = 0;
x = x + 1;
Dann erhalte ich folgende Fehlermeldung zur Laufzeit(Debug):
source not found for:
2 __aeabi_fadd() ..\..\..\gcc-4.1.1\gcc\config\arm\ieee754-sf.S:73 
0x000011b8
Im Nicht-Debung-Modus wird der Mikrocontroller resettet.

Bei anderen Float-Operationen(*,/ usw.) erhalte ich entsprechend analoge 
Fehlermeldungen.


Danke für eure Hilfe.

Grüsse,
H.Hammoud

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren