Forum: Compiler & IDEs libSTemWin526_CM4_GCC.a - VFP register arguments


von timertick_t (Gast)


Lesenswert?

Das Drama nimmt kein Ende. Ich bin am Portieren eines Projekts das mit 
meinen Eclipse-Einstellungen nicht kompatibel ist.

Nun bekomme ich tonnenweise:
1
error: C:\workspaceSTM32\STEmWinTest_2\GUI\Lib
2
\libSTemWin526_CM4_GCC.a(GUI_Exec.o) uses VFP register arguments,
3
STEmWinTest_2.elf does not
4
STEmWinTest_2 C/C++ Problem
Scheinbar verwendet der Compiler im Moment nicht diese ominösen 
VFP-Register; ich habe einiges ausprobiert, z.B. wie unter OpenSTM32 
angeraten:
-mfpu=fpv4-sp-d16 -mfloat-abi=hard
Im Ergebnis erfolglos. Auch ähnliche Projekteinstellungen unter Coocox 
haben nicht gezündet.

Könnte jemand der hier in diesem elitären Kreise üblichen Verdächtigen 
STM32/STEmwin Anwender mal seine entsprechenden Eclipse 
Projekteinstellungen:
C++ -> Build -> Settings -> Tool Settings -> Target Processor
als Screenshot posten?

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Die Einstellung:
[p]-mfpu=fpv4-sp-d16 -mfloat-abi=hard[/p]
sieht erst mal richtig aus. Hast Du ein clean nach der Änderung 
ausgeführt?

Im Anhang findest Du das SampleDemo für das Disco429 als luna Projekt.
Musst nur deine libSTemWin526_CM4_GCC.a in das Verzeichnis:
[p]STemWin_SampleDemo/Middlewares/ST/STemWin/Lib/[/p]
einfügen, die war mir zu groß zum einpacken...

von hp-freund (Gast)


Lesenswert?

Ups.
[p] und [/p] bitte ignorieren...

von timertick_t (Gast)


Lesenswert?

>Hast Du ein clean nach der Änderung ausgeführt?
Scheinbar war das einer der Gründe für mein Kuddelmuddel. Jedenfalls 
sind die Fehler erstmal weg. Danke für den Tip!
Ich bin immer noch an dem Projekt, deinen Beispielcode hab ich noch 
nicht getestet (kommt aber noch).

Ich bin bis jetzt dem Linken dieser endmadigen Codeklumpen immer aus dem 
Weg gegangen, es ist aber interessant was alles vor sich geht wenn man 
damit konfrontiert ist...

... zum Beispiel das hier: libSTemWin522_CM4_GCC.a wurde gefunden und 
wird sicherlich auch funktionieren:
Ich bekomme aber eine nicht vorhandene Referenz (auf nicht DEFINIERTEN - 
also nicht vorhandenen/geschriebenen/compilierten Code):
1
C:\workspaceSTM32\STEmWinTest_2\GUI\Lib\libSTemWin522_CM4_GCC.a(GUI_Core.o): In function `GUI_Init':
2
GUI_Core.c:(.text.GUI_Init+0x68): undefined reference to `GUI_X_Init'

Es liest sich als wäre
1
// in GUI.h:
2
void GUI_X_Init (void);
nicht in libSTemWin522_CM4_GCC.a vorhanden; das wiederum kann ich mir 
aber beim besten Willen nicht vorstellen. Muß ich dem Linker vielleicht 
noch irgendetwas mitteilen?

von hp-freund (Gast)


Lesenswert?

timertick_t schrieb:
> Es liest sich als wäre// in GUI.h:
> void GUI_X_Init (void);
> nicht in libSTemWin522_CM4_GCC.a
Die ist in der GUI_X.c definiert. Die muss also auch compiliert werden.

Wenn Du wissen willst was in einer lib ist:
1
arm-none-eabi-nm libSTemWin526_CM4_GCC.a
Auf Grund der großen Menge besser die Ausgabe in Datei umleiten.
Musst allerdings auch die Buchstaben vor den Funktionen,Typen usw. 
deuten.

von timertick_t (Gast)


Lesenswert?

Hurra, es läßt sich kompilieren.

Nachtrag:
Daß manche Fehler nur mit nem 'Clean' weggehen ist echt ne böse Falle...


Langsam dämmert mir Einiges... der Bursche hat nur seinen absolut 
notwendigen bzw modifizierten Code veröffentlicht. Viel gelernt beim 
Fehlersuchen... Und vielen Dank für deine Hilfe.

Werd' gleich mal deine gepostete Demo testen. Kann sein, daß ich mich in 
diesem Faden nochmal melde falls es irgendwo hakt.

von timertick_t (Gast)


Angehängte Dateien:

Lesenswert?

Das STemWin_SampleDemo lässt sich mit meinen Settings nicht kompilieren.
1
all 
2
Cannot run program "": Launching failed
3
4
Error: Program "" not found in PATH
5
PATH=[C:/Program Files/Java/jre1.8.0_45/bin/client;C:/Program Files/Java/jre1.8.0_45/bin;C:/Program Files/Java/jre1.8.0_45/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Coreutils\bin\;C:\CooCox\CoIDE_V2Beta\gcc\bin;C:\CooCox\CoIDE_V2Beta\bin;C:\ARMtoolchains\arm-none-eabi-gcc\bin;C:\Coreutils\bin\;C:\ARMtoolchains\eclipse-cpp-luna-SR2-win32\eclipse;]
Error: Program "" not found in PATH
Ich stochere nun schon den ganzen Vormittag an den Projekteinstellungen 
rum und in allen Quellen die ich diesbezüglich finde schreibt jeder 
sinngemäß was anderes, hauptsächlich mit Java-Bezug. Hab noch ein paar 
Settings ausprobiert - keine Besserung. Man fragt sich, warum es nicht 
einfach eine Checkbox für "Use external makefile" wie bei Atmel Studio 
gibt und die Sache hat sich. Grummel.

Anbei noch zwei Screenshots.

von hp-freund (Gast)


Lesenswert?

timertick_t schrieb:
> Das STemWin_SampleDemo lässt sich mit meinen Settings nicht kompilieren.

Moin,
meinst Du deins oder meins?
Mein luna Projekt habe ich eben mal in kepler importiert - funktioniert.

timertick_t schrieb:
> Man fragt sich, warum es nicht
> einfach eine Checkbox für "Use external makefile" ... gibt

Das ist mit dem nicht gesetzten Haken bei "Makefile generation" in 
deinen 2. Bild erledigt.

**********

Was in deinem Pfad auffällt sind die / und \  und die Leerzeichen.
Ist das richtig so unter Win?

von hp-freund (Gast)


Lesenswert?

Noch zum makefile:
Wenn es nicht automatisch erstellt wird, muss es sich im
"Build directory" befinden.

von timertick_t (Gast)


Lesenswert?

>Moin,
>meinst Du deins oder meins?
Deins. Also STemWin_SampleDemo.


Danke für die Unterstützung. Werd' gleich mal drangehen.

von timertick_t (Gast)


Lesenswert?

Am Rande:
>> einfach eine Checkbox für "Use external makefile" ... gibt
>Das ist mit dem nicht gesetzten Haken bei "Makefile generation" in
>deinen 2. Bild erledigt.
Wenn ich gestern wohl gezielt danach gefragt hätte, hätte mir das viel 
Arbeit erspart. Hab eben nochmal den originalen Code meines gestrigen 
Projekts getestet, und nach drei Sekunden war er durch. Tsss...

Aber zurück zur Gegenwart - ich glaub das funzt nicht so ohne weiteres 
weil
>Was in deinem Pfad auffällt sind die / und \  und die Leerzeichen.
das makefile für eine Linux-Umgebung geschrieben wurde?
Das makefile direkt auf der Kommandozeile
C:\workspaceSTM32\STemWin_SampleDemo\Default>
aufgerufen geht schonmal nicht.

/usr/bin/sh: gcc: command not found
make: *** [Utilities/Fonts/font12.o] Error 127

/usr/bin/sh: gcc
:-)))

Ich glaube, ich muß das mal auf meinem Ubuntu-Rechner testen...

von hp-freund (Gast)


Lesenswert?

gcc -> arm-none-eabi-gcc

von hp-freund (Gast)


Lesenswert?

timertick_t schrieb:
> das makefile für eine Linux-Umgebung geschrieben wurde?

Welches makefile? In meiner zip ist keins drin :-)

von timertick_t (Gast)


Lesenswert?

>Welches makefile? In meiner zip ist keins drin :-)
Ahhh!
Falsches Projekt! Die haben bei mir alle ähnliche Namen... Mea culpa.

So... kompiliert. Aber ach Gottchen... das sieht alles ganz anders aus 
wie die Umgebung die das Plugin von diesem Livio Ionescu oder wie der 
Bursche heißen mag, erzeugt. Hm. Und den Schalter zur Erzeugung eines 
Binärfiles muß auch erst noch finden.

Scheinbar befinde ich mich jetzt "auf purem Eclypse + CDT mit ohne 
Alles" ?

von timertick_t (Gast)


Lesenswert?

Sooo... alles wieder so wie es sein soll.
Die Demo läuft, die Delfine schwimmen.

Das ist doch mal ein Ausgangspunkt :-)

Vielen Dank für deine Unterstützung!

von hp-freund (Gast)


Lesenswert?

Bedeutet das Du hast keine richtige Umgebung um auch nur ein simples 
STM32 Projekt in eclipse zu erstellen?
Dann solltest Du das erst mal einrichten.

Beachte bei der Pfadangabe das die Programme in der Reihenfolge gefunden 
werden in der sie drin stehen.
D.h. erst wird der compiler von coocox gefunden, nicht der von 
ARMtoolchains.

Vielleicht solltest Du tatsächlich unter ubuntu alles noch mal nach 
Anleitung neu einrichten.

von hp-freund (Gast)


Lesenswert?

Ok. Dann streiche meinen letzten Beitrag....

Das Demo ist schon recht beeindruckend.

Viel Spaß

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.