Forum: Compiler & IDEs stm8-objcopy von Linux nach Windows portieren


von hochsitzcola (Gast)


Lesenswert?

Ich nutze den SDCC compiler für ein Open Source Projekt auf Basis eines 
STM8. Ich arbeite unter Windows, was bisher auch gut funktioniert hat. 
Jetzt sind wir aber an einen Punkt gekommen, wo der Code unter Linux 
compiliert funktioniert und mit Windows compiliert zu Problemen führt.
https://github.com/OpenSource-EBike-firmware/BMSBattery_S_controllers_firmware/tree/CheckADC

Die Compiler-Optionen sind eigentlich identisch (die -Ddouble=float 
Option habe ich im Windows-Makefile bereits ergänzt und die --debug 
Option entfernt). Unter Windows lasse ich im Makefile gleich die intel 
HEX-Datei erstellen. In Linux wird erst eine elf-Datei erstellt, die 
dann per stm8-objcopy wieder in bin/hex reduziert wird. (Ich gebe zu, 
davon habe ich wenig Ahnung)

https://sourceforge.net/projects/stm8-binutils-gdb/files/

Gibt es eine Möglichkeit dieses spezifische stm8-objcopy nach Windows zu 
portieren?! Ich habe schon mit cygwin rumprobiert, da kommen aber nur 
Fehlermeldungen und ich muß auch zugeben, daß ich nicht weiß, wie man 
mit cygwin umgeht :-(

Gruß
hochsitzcola

von Sheeva P. (sheevaplug)


Lesenswert?

hochsitzcola schrieb:
> https://sourceforge.net/projects/stm8-binutils-gdb/files/
>
> Gibt es eine Möglichkeit dieses spezifische stm8-objcopy nach Windows zu
> portieren?! Ich habe schon mit cygwin rumprobiert, da kommen aber nur
> Fehlermeldungen und ich muß auch zugeben, daß ich nicht weiß, wie man
> mit cygwin umgeht

Du könntest versuchen, mit dem MingW-Compiler ein Binary zu übersetzen.

Zudem bieten aktuelle Windows-Versionen als "Experimental Feature" die 
Option, Linux-Binaries direkt aus den Ubuntu-Repositories zu 
installieren und laufen zu lassen. Da sind die STM8-Binutils zwar nicht 
drin, aber eventuell laufen sie trotzdem oder lassen sich nach 
Installation einer Build-Umgebung (Metapaket build-essential) auf dem 
Windows genau so übersetzen, wie unter Linux auch.

Beide Ideen basieren allerdings nur auf Hörensagen, YMMV.

von Jim M. (turboj)


Lesenswert?

hochsitzcola schrieb:
> Gibt es eine Möglichkeit dieses spezifische stm8-objcopy nach Windows zu
> portieren?!

Das objcpopy hat IIRC keine Architekturspezifischen Funktionen, es 
sollte also jedes funktionieren - solage es das .elf lesen kann.

Zusammen mit
Sheeva P. schrieb:
> aktuelle Windows-Versionen als "Experimental Feature" die
> Option, Linux-Binaries direkt aus den Ubuntu-Repositories zu
> installieren

..müsste da das normale objcopy aus binutils reichen.

von Oliver S. (oliverso)


Lesenswert?

Sheeva P. schrieb:
> Zudem bieten aktuelle Windows-Versionen als "Experimental Feature" die
> Option, Linux-Binaries direkt aus den Ubuntu-Repositories zu
> installieren und laufen zu lassen.

Mit der aktuellesten Windows10-Version ist das nicht mehr experimentell.

Oliver

von hochsitzcola (Gast)


Lesenswert?

Jim M. schrieb:
> Das objcpopy hat IIRC keine Architekturspezifischen Funktionen, es
> sollte also jedes funktionieren - solage es das .elf lesen kann.

Aber genau das tut es nicht :-(
1
objcopy: Unable to recognise the format of the input file `main.elf'

Gruß hochsitzcola

von hochsitzcola (Gast)


Lesenswert?

Ich habe die stm8-binutils für Windows gefunden, die waren nur etwas 
versteckt :-):
https://sourceforge.net/projects/stm8-binutils-gdb/files/cygwin/x86/release/stm8-binutils-gdb/

Gruß
hochsitzcola

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.