Forum: Compiler & IDEs Eclipse, statt .elf .bin file erzeugen


von Spartan (Gast)


Lesenswert?

Hallo, weiß einer vielleicht, wie ich in Eclipse Helios statt dem .elf 
file das.bin file erzeugen kann? Ich brauchs nämlich um in ein  Flash zu 
flashen. Wäre super wenn mir einer weiterhelfen könnte.
Danke.

von Simon H. (simi)


Lesenswert?

objcopy macht das.

Gruäss Simon

von Spartan (Gast)


Lesenswert?

Also, hab unter GNU create Flash Image diesen Command: 
arm-none-eabi-objcopy
darunter in all Options steht: -O ihex H150.elf
Also unter Propertie des jeweiligen Projekts, dann unter C/C++ Build 
dann unter Settings und dann unter create image flash.

Leider funktioniert das nicht, erstellt immer eine .elf datei.

von Stefan++ (Gast)


Lesenswert?

Hallo,

meine Einstellung z.B. ist (mit deinem Projektnamen "H150")

-O ihex -j .text -j .data -j .reset H150.elf

geht wunderbar !!!

von Stefan E. (sternst)


Lesenswert?

Spartan schrieb:
> Leider funktioniert das nicht, erstellt immer eine .elf datei.

Natürlich. Aus dem Compiler/Linker kommt nun mal nicht anderes raus, als 
ELF. Das "statt", was du eigentlich haben möchtest, ist "im nächsten 
Schritt aus der elf-Datei eine bin-Datei extrahieren, statt einer 
hex-Datei".

Oder wenn in deiner Build-Umgebung bisher keine hex-Datei erzeugt wurde, 
dann wird aus deinem "statt" ein "zusätzlich".

von Stefan++ (Gast)


Lesenswert?

Hallo,
noch ein Nachtrag:
Bei mir wird auch immer ein *.elf-File erzeugt, aber "objcopy" mit 
obigen Einstellungen erzeugt mir daraus ein *.hex-File in dem dann nur 
die Sectionen .text .data und .reset sind.

Hast du schon richtig geschaut?
Ist da in deinem "Configurations"-Verzeichnis wirklich kein *.hex-File 
???

von Spartan (Gast)


Lesenswert?

Wenn ich es in Eclipse eingebe, dann ändert sich in der makefile nur 
diese Zeile:

Pro.hex: Pro.elf
  @echo 'Invoking: ARM Yagarto Windows GNU Create Flash Image'
  arm-none-eabi-objcopy -O binary Pro.elf Pro.bin -O ihex Pro.elf 
"Pro.hex"
  @echo 'Finished building: $@'
  @echo ' '

:: -O binary Pro.elf Pro.bin //das ist das was ich in der command Zeile 
eingegeben habe und
:: -O ihex Pro.elf "Pro.hex" das generiert er selbst, dann kommt da ein 
Error [H]

von Stefan++ (Gast)


Lesenswert?

Spartan schrieb:
> Wenn ich es in Eclipse eingebe, dann ändert sich in der makefile nur
> diese Zeile:
>
> Pro.hex: Pro.elf
>   @echo 'Invoking: ARM Yagarto Windows GNU Create Flash Image'
>   arm-none-eabi-objcopy -O binary Pro.elf Pro.bin -O ihex Pro.elf
> "Pro.hex"
>   @echo 'Finished building: $@'
>   @echo ' '

Das ist schon mal sehr gut, das hab ich auch.


Aber was du mit dem folgendem meinst das verstehe ich nicht??

> :: -O binary Pro.elf Pro.bin //das ist das was ich in der command Zeile
> eingegeben habe und
> :: -O ihex Pro.elf "Pro.hex" das generiert er selbst, dann kommt da ein
> Error [H]

Wo gibst du das per Hand ein ???

von Spartan (Gast)


Lesenswert?

was ich meinte war, dass in der Makefile diese lange Zeile erscheint:
1
arm-none-eabi-objcopy -O binary Pro.elf Pro.bin -O ihex Pro.elf "Pro.hex"
und das ist doch gar nciht richtig, eigentlich hätte doch nur das hier 
stehen sollen:
1
arm-none-eabi-objcopy -O binary Pro.elf Pro.bin

von Stefan++ (Gast)


Lesenswert?

Hallo,

nein, nein das ist schon richtig, ich hab da für Yagarto z.B.
1
xxx.hex: xxx.elf
2
  @echo 'Invoking: ARM Yagarto Windows GNU Create Flash Image'
3
  arm-none-eabi-objcopy -O ihex -j .text -j .data -j .reset xxx.elf  "xxx.hex"
4
  @echo 'Finished building: $@'
5
  @echo ' '

mach jetzt mal "clean project" und erstelle alles neu, dann muss einfach 
dein *.hex bzw *.bin File dabei sein!!!

von Spartan (Gast)


Lesenswert?

ja gut wenn ich es dann builde dann kommt ein Fehler
make: *** [Pro.hex] Error 1

davor zeigt er alle optionen für den Yagarto an, sonst passiert da 
nicht, hab auch schon direjt übers DOS probiert geht einfach nciht, 
muss ich vielleicht noch was in mein Eclipse Helios was ändern an 
Einstellungen?
Danke

von Spartan (Gast)


Lesenswert?

so habs zwar in Dos hinbekommen, dass er aus ein.elf file eine .bin 
macht, jedoch kann der KM Flash Programmer von TI nicht erkennen und 
sagt error file.

was nun ne Idee, wie ich ein lauffähiges bin file erstelle.

von Spartan (Gast)


Lesenswert?

Ich habe jetzt das hex file in bin umgewandelt und das kann ich jetzt 
auch mit LM Flash Programmer öffnen, jedoch beim downloaden kommt eine 
Fehlermeldung, file length greater then Flash size. wie soll ich jetzt 
meine file größer weniger als 256K hinbekommen au mann,habs zwar jetzt 
aus dem bin file, soviele zeilen gelöscht, sodass das file kleiner als 
256k ist und jetzt gedownload werden kann, aber klar es funktioniert 
nicht, fehlt ja einiges.

Allgemeine Frage, wenn ich das elf file umwandle, dann kann ich es mit 
keinem Editor öffnen, wenn ich jedoch das hex file in bin umwandle, dann 
zeigt er mir das ingtel hex format an, den zweck erfüllen beide files 
aber denselben nicht?

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.