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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von psavr (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 Moderator
von Nop (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Ähmmm vielleicht doch gut?

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

:o)

von Psavr (Gast)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.