Forum: PC-Programmierung Sourcefore-Tool mit Mingw für Winx86 compilieren


von psavr (Gast)


Angehängte Dateien:

Lesenswert?

Es geht um folgendes Sourceforge Project:
"Open source flash program for STM32 using the ST serial bootloader"

https://sourceforge.net/projects/stm32flash/files/?source=navbar

Auf Sourceforge hat es leider nur ein 64-Bit Windows Executable zum 
Download, ich benötige aber ein WinX86 Executable, könnte mir jemand so 
ein 32-Bit Executable bauen?

Das wäre echt super, denn bis ich ein Linux soweit zum laufen habe 
vergeht mindestens 1..2 Wochen.

HOWTO aus dem stm32flash-0.5.tar.gz
>Cross compile on Linux host for Windows target with MinGW:
>=====================================================================
>I'm using a 64 bit Arch Linux machines, and I usually run:
>make CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar

: Verschoben durch User
von Nop (Gast)


Lesenswert?

Wieso installierst Du auf Windows nicht einfach MingW für 32 bit und 
compilierst das?

Wofür das W in MingW steht, ist bekannt? ;-)

von Oliver S. (oliverso)


Lesenswert?

Weils meistens in einer unendlichen Anzahl von "missing 
libfoo"-Fehlermeldungen u.ä. endet.

Aber mal eben ein Linux in eine virtuelle Machine packen, und die 
toolchain und ein Mingw installieren dauert doch keine zwei Tage.

Oliver

von Psavr (Gast)


Lesenswert?

Und einer der alles schon installiert am laufen hat und sich damit 
auskennt braucht ca 10 Minuten um die beiliegenden Sourcen mit dem 
passenden Make-Aufruf zu bauen ind das Exe wieder hoch zu laden.

Dachte ich mir...

Doch falls das auch für Spezialisten nicht so straight forward einfach 
ist, ist es das für mich erst recht nicht.

von Psavr (Gast)


Lesenswert?

Und wenn mir ein "Spezialist" per Cpoy&Paste seine Shell Ein- und 
Ausgaben als Textfile beilegt, werde ich versuchen es nach zu machen und 
lerne anhand des Beispiels auch was für's nächste mal (auch andere 
Interessierte)

Versucht hab ich's bereits, als Linux Program läuft es sogar, aber ein 
Exe kriege ich nicht hin. War mir auch nicht klar, welche der rund 20 
MingW Pakete zu instaliern sind, ein Übergeordnetes Hab mal alles 
installiert was mir sinnvol erschien, ein übergeordneted Gesmtpaket habe 
ich nicht gefunden, beim Make Commando aus dem ersten Betrag kommen 
keine Fehler oder Warnings, nur ca 3 Zeilen, das alles schon gemacht ist 
(oder so) doch ein exe kommt nirgens raus. Auch nicht wenn ich noch -o 
wobistdu.exe hinten beifüge...

HELP

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Nop schrieb:
> Wieso installierst Du auf Windows nicht einfach MingW für 32 bit und
> compilierst das?
>
> Wofür das W in MingW steht, ist bekannt? ;-)

Hier bedeutet es, dass das Flash-Tool, das mit dem STM-Bootloader 
kommuniziert, under MS-Windows laufen soll.

von Gerhard (Gast)


Angehängte Dateien:

Lesenswert?

Hab mich einfach nach der Anleitung des Readme Files gerichtet. 
Compiliert in 10 Sekunden :-)
Also unter Linux Mint:
make CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar

Weiß nicht, ob ich's hier anhängen darf. Versuch es einfach mal.

Gruß
Gerhard

von Psavr (Gast)


Lesenswert?

Hallo Gerhard

Ich habe auch Linux Mint 18.2
Wenn ich einfach die Sourcen entpacke, mit der Shell ins Verzeichnis 
wechsle und 'make' aufrufe erhalte ich ein laufähiges Linux-Binary.
1
~/stm32flash $ make
2
cd parsers && make parsers.a
3
make[1]: Entering directory '/home/nimda/stm32flash/parsers'
4
make[1]: 'parsers.a' is up to date.
5
make[1]: Leaving directory '/home/nimda/stm32flash/parsers'

Aber mit deinem Commando habe ich keinen Erfolg:
1
~/stm32flash $ make CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar
2
cd parsers && make parsers.a
3
make[1]: Entering directory '/home/nimda/stm32flash/parsers'
4
make[1]: 'parsers.a' is up to date.
5
make[1]: Leaving directory '/home/nimda/stm32flash/parsers'

Was müsste ich noch installieren?

von Psavr (Gast)


Lesenswert?

Ähmmm vielleicht doch gut?

Dabei ensteht auch ein neues "stm32flash"
=> Umbenennen nach zB "stm32flash_Win32.EXE" und schon fertig?

:o)

von Psavr (Gast)


Lesenswert?

Doch nicht mit "make CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar" 
kommt ein 64 Bit Binary raus. wenn ich den Make Aufruf abändere komt 
volgendes raus:
1
nimda@nimda-desktop ~/stm32flash $ make CC=x86_64-w32-mingw32-gcc AR=x86_64-w32-mingw32-ar
2
x86_64-w32-mingw32-gcc -Wall -g   -c -o dev_table.o dev_table.c
3
make: x86_64-w32-mingw32-gcc: Command not found
4
<builtin>: recipe for target 'dev_table.o' failed
5
make: *** [dev_table.o] Error 127
6
7
...oder
8
9
nimda@nimda-desktop ~/stm32flash $ make CC=x86_32-w32-mingw32-gcc AR=x86_32-w32-mingw32-ar
10
x86_32-w32-mingw32-gcc -Wall -g   -c -o dev_table.o dev_table.c
11
make: x86_32-w32-mingw32-gcc: Command not found
12
<builtin>: recipe for target 'dev_table.o' failed
13
make: *** [dev_table.o] Error 127

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Psavr schrieb:
> make: x86_64-w32-mingw32-gcc: Command not found

Deine 32-Bit Cross-Toolchain heißt anders, versuch mal i686-w64-mingw32.

von Psavr (Gast)


Lesenswert?

>Deine 32-Bit Cross-Toolchain heißt
>anders, versuch mal i686-w64-mingw32

Geht auch nicht!
Ist denn keiner da, der sich auskennt?

von Christopher J. (christopher_j23)


Angehängte Dateien:

Lesenswert?

Psavr schrieb:
> Geht auch nicht!
> Ist denn keiner da, der sich auskennt?

Woran hängt es denn?

Unter einem *buntu-System kannst du den 32bit-Cross-Compiler mit
1
sudo apt-get install gcc-mingw-w64-i686
installieren.

Hab dir trotzdem mal eine Binary angehängt. Ob es geht weiß ich nicht, 
weil ich kein Windows zum testen habe. Falls es nicht geht, schau mal 
hier:
https://sourceforge.net/p/stm32flash/wiki/Build/

Du musst lediglich das
1
pacman -S mingw-w64-x86_64-gcc
durch
1
pacman -S mingw-w64-i686-gcc
ersetzen.

von Psavr (Gast)


Lesenswert?

@ Christopher Danke! Dein win32.exe funktioniert und dank deinem Hinweis 
kann ich es nun auch selber bauen:

> make clean
> make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar

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.