Forum: Mikrocontroller und Digitale Elektronik arm-elf-ld ERROR: hardware FP softwareFP


von Toni 2. (toni23)


Lesenswert?



arm-elf-ld ERROR: Cstartup.o uses hardware FP, whereas beispiel.out uses 
software FP

Mein Linker spuckt diese Fehlermeldung aus. Ich weis nicht, was FP 
bedeutet, und wie ich den Fehler wegbekomme.

Cstartup ist ein assamblerfile und beispiel.out ist die Datei, die 
erzeugt werden soll. Diese Datei soll sich anschließend auf einen 
Mikrokontroller ( AT91M55800A) übertragen lassen.

Danke für Hinweise

von Karsten (Gast)


Lesenswert?

>Cstartup ist ein assamblerfile und beispiel.out ist die Datei, die
>erzeugt werden soll.

Mag sein. beispiel.out wird aber nicht erzeugt, sondern hinzugelinkt, 
wenn du jene Fehlermeldung erhältst.

von Dirk D. (dirkd)


Lesenswert?

FP steht für floating point

CStartup.o wird von deinem Linker dazu gelinkt und verwendet für 
floiting point arithm. Hardware-Unterstützung (wurde mit dieser Option 
compiliert). Beispiel.out wurde ohne diese Unterstützung compiliert.

Beides passt nicht zusammen.

Zeig uns mal Dein Makefile. Könnte helfen.

von Toni 2. (toni23)


Angehängte Dateien:

Lesenswert?

Mein Makefile sieht folgendermaßen aus: siehe Dateianhang

verwendeter µC: AT91M55800A
auf einem AT91EB55 derivat

von Dirk D. (dirkd)


Lesenswert?

Ist das wirlich das richtige Makefile?

Da ist nichts von einem beispiel.out zu sehen.

von Dirk D. (dirkd)


Lesenswert?

Vielleicht hilft es auch Deine Cstartup_FDB.s zu posten. Verwendest Du 
darin irgendwo Floating point?

von Toni 2. (toni23)


Angehängte Dateien:

Lesenswert?

Hier noch die Cstartup_FDB.s und zusätzlich die Cstartup_eb55.C und 
Cstartup_eb55.s; FDB.H

von Dirk D. (dirkd)


Lesenswert?

Ich habe im Moment nicht viel Zeit mir das ganze anzusehen.

Vorschlag:
Verwende mal die Assembler Option -mcpu. In Deinem Fall vermutlich
-mcpu=arm7tdmi

Zusätzlich noch
-msoft-float

Letzteres sollte eigentlich unnötig sein; aber vielleicht ist Deine 
Toolchain anders erzeugt worden.

von Toni 2. (toni23)


Lesenswert?

Ich habe gerade gesehen, dass ich eine Änderung am makefile vornahm. 
Diese ist im Makefileanhang nicht drin. Ohne diese Änderung habe ich 
auch nicht die Fehlermeldung, aber wahrscheinlich auch nicht das 
ergebnis, dass ich mir wünsche. Nehmlich eine richtig gelinkte .out 
datei.

diese Zeile:
$(LD) -Map ram.map  -o ram.out  main.o  -Tlinkerscr.lsc


muss so aussehen:
$(LD) -Map ram.map  -o ram.out  main.o  Cstartup_FDB.o -Tlinkerscr.lsc


Ich habe die Optionen -mcup=arm7tdmi und -msoft-float ausprobiert. 
Ergbnis= Gleiche fehlermeldung wie oben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.