Hex file mit Arduino erzeugen?!

#5871439
Lesenswert?

Muss man gar nicht.
Wenn man "Sketch->Kompilierte Binärdatei exportieren" klickt, entsteht 
eine Hexdatei im Projektverzeichnis.
Genau genommen sogar zwei: Eine ohne Bootloader, die man mit eben diesem 
flashen kann, und eine mit, die man per ISP da reinbeamt und hinterher 
ist das ein vollwertiger Arduino-Chip.

Obwohl OPs Frage genau genommen in einem Sketch enden müsste, das 
beliebige Binärdaten in Intel-Hex-Daten konvertieren kann.
Gast #5871484
Lesenswert?

Jens M. schrieb:
> Genau genommen sogar zwei: Eine ohne Bootloader, ....
> und eine mit, die man per ISP da reinbeamt ....

Und noch eine Dritte im Intel Hex Format.
Die betreffende *.eep mit den EEPROM Vorbesetzungen.

Im Arduino Sketch Menü findet sich sogar noch ein Eintrag:
> Kompilierte Binärdatei exportieren

Wobei das Wort "Binärdatei" evtl. hier für Verwirrung sorgt, denn es ist 
"nur" eine Datei im Intel Hex Format.
#5871499
Lesenswert?

Gunnar schrieb:

> Hat von euch schon mal wer eine Hex Datei mit Arduino erzeugt?

Was zum Geier meinst du "mit Arduino"?

"Arduino" ist kein trennscharfer Begriff, sondern kann alles mögliche 
meinen:

- ein µC-Board mit einem bestimmten Formfaktor und einem Steckverbinder 
zur Aufnahme von sogenannten "Shields". Im Gegensatz zur landläufigen 
Meinung bedeutet "Arduino" nicht zwangsläufig, daß ein AVR µC auf dem 
Board ist.

- ein Software-Framework zum Schreiben von Programmen (bekannter unter 
dem Kunstnamen "Sketch"), die durch Abstraktion von der konkreten 
Hardware ohne Änderung auf allen unterstützten Arduino Boards lauffähig 
ist.

- eine rudimentäre IDE zum Schreiben dieser Programme

- eine Firma, die o.g. Hard- und Software herstellt und vertreibt


Am ehesten ergibt deine Frage einen Sinn in Verbindung mit der Arduino 
"IDE". Aber auch da nicht wirklich, denn die IDE verbirgt ja 
absichtlich alle Details vor dem Anwender. Wenn du den "Sketch auf das 
Board programmieren" Knopf drückst, wird sie im Hintergrung wohl schon 
ein HEX-File bzw. das Äquivalent davon erzeugen (Hint: für Arduino auf 
ARM gibt es schonmal kein HEX File; auf dem AVR möglicherweise schon). 
Nur: warum willst du das wissen?

> Ich habe schon einige Anleitungen versucht aber leider ohne Erfolg.

Tja. Wie wäre es, wenn du stattdessen mal dein eigentliches Problem 
schilderst? Ich kann mir gerade gar nicht vorstellen, was das sein 
sollte.
Gast #5871513
Lesenswert?

Axel S. schrieb:
> Am ehesten ergibt deine Frage einen Sinn in Verbindung mit der Arduino
> "IDE". Aber auch da nicht wirklich, denn die IDE verbirgt ja
> absichtlich alle Details vor dem Anwender.

Es steht jedem frei, die Voreinstellungen der Arduino IDE so zu 
konfigurieren, dass man jeden einzelnen Schritt der "verborgenen" 
Prozesse beim Kompilieren angezeigt bekommt. Auch sieht man dort, 
welcher Hex-File mit avrdude auf den µC geladen wird.
Hingucken musst du allerdings selber.
Gast #5871664
Lesenswert?

Mein Arduino hat sehr wenig Speicher (Ram) und überhaupt kein 
Filesystem.
Wie sollte ich damit ein HEX-File erzeugen und wohin ablegen?

Früher mit den 8-Bittern habe ich einiges angestellt, aber da war 
zumindest ein Diskettenlaufwerk dran.
Gast #5871679
Lesenswert?

PittyJ schrieb:
> Mein Arduino hat sehr wenig Speicher (Ram) und überhaupt kein
> Filesystem.
> Wie sollte ich damit ein HEX-File erzeugen und wohin ablegen?
>
> Früher mit den 8-Bittern habe ich einiges angestellt, aber da war
> zumindest ein Diskettenlaufwerk dran.

Wer will das Wissen?

Und warum soll das für uns interessant sein?
Gast #5871683
Lesenswert?

Boah, was für arrogante Nicht-Antworten hier.
Die Arduino IDE erzeugt automatisch alle Dateien, die gebraucht werden 
oder man kann es in den Optionen aktivieren. Das Problem ist, daß diese 
super versteckt und verstreut werden und immer wieder gelöscht. Da es 
ohne die HEX-Datei nicht geht, wird sie immer erzeugt. Nach dem 
compilieren liegen die Dateien im Arduino Ordner, der sich irgendwo im 
Baum des Benutzers auf C:\ (Windows) befindet. Den suche ich auch jedes 
mal neu, kann man aber in den Einstellungen ablesen. Die .hex-Datei 
enthält die Bytes (im Intel Hex-Format), die in den µC/Arduino 
übertragen werden und ist das Ergebnis des Compiliervorgangs. Dazu hat 
man kein Filesystem. In der Arduino Welt nutzt man dazu ein USB-Kabel 
und den Bootloader auf dem Arduino-Board. Alternativ nimmt man einen 
externen USB-Programmieradapter.
Gast #5871694
Lesenswert?

Hallo,

und wo ist denn nun Dein Problem ?

Auf dem Arduino gibt es kein Hex, denn die Datei wird beim Laden 
gelesen, interpretiert und dann direkt ins Memory geschrieben. Wo ist 
also das Problem, dass es kein Filesystem gibt ?

Gruß,
Michael
#5871701
Lesenswert?

Hallo,

eigenlich gab es nur eine wirklich sinnvolle Antwort von
Jens M. (schuchkleisser) in diesem Thread...
In der IDE unter Sketch einfach "Kompilierte Binärdatei exportieren" 
auswählen und die .hex landen im Sketchodner.
Geht auch z.B. bei den ESP mit der .bin-Datei.

Ansonsten muß der TO eben seine Frage präzisieren.

Gruß aus Berlin
Michael
Gast #5871741
Lesenswert?

Florian schrieb:
> Boah, was für arrogante Nicht-Antworten hier.
> Die Arduino IDE erzeugt automatisch alle Dateien, die gebraucht werden
> oder man kann es in den Optionen aktivieren. Das Problem ist, daß diese
> super versteckt und verstreut werden und immer wieder gelöscht. Da es
> ohne die HEX-Datei nicht geht, wird sie immer erzeugt. Nach dem
> compilieren liegen die Dateien im Arduino Ordner, der sich irgendwo im
> Baum des Benutzers auf C:\ (Windows) befindet. Den suche ich auch jedes
> mal neu, kann man aber in den Einstellungen ablesen. Die .hex-Datei
> enthält die Bytes (im Intel Hex-Format), die in den µC/Arduino
> übertragen werden und ist das Ergebnis des Compiliervorgangs. Dazu hat
> man kein Filesystem. In der Arduino Welt nutzt man dazu ein USB-Kabel
> und den Bootloader auf dem Arduino-Board. Alternativ nimmt man einen
> externen USB-Programmieradapter.

Herrlich!
Eine Herabwürdigung der andern Helfer als Einleitung.
Dann das große Nichtwissen...
Eingebettet in die Annahme, genau zu wissen, was der TE will.

Meinen Beifall!
Und mit arrogant, da kennst du dich mit aus.
Das merkt man.
#5871769
Lesenswert?

Bei Windows wäre es wie folgt:

Windows Taste + R
öffnen: %appdata%

Den Ordner AppData öffnen.
Den Ordner Local öffnen.
Den Ordner Temp öffnen.

Den Ornder ArduiniBuild (Datum) suchen und öffnen.

Dort sind die ganzen Hex Files mit oder ohne Bootloader vorhanden.

Wie das Ganze bei Linux aussieht kann ich leider nicht sagen, aber 
eventuell hilft es ja.
Gast #5871773
Lesenswert?

Florian schrieb:
> Nach dem compilieren liegen die Dateien im Arduino Ordner, der sich
> irgendwo im Baum des Benutzers auf C:\ (Windows) befindet.

Nicht "irgendwo", sondern genau an dem Ort, den die IDE als Dateipfad 
beim Kompilieren angibt. Und bestimmt liegen die Dateien nicht in 
C:\Windows.

Wenn der Windows Explorer Pfade nicht anzeigt und irgendwelche 
Aliasnamen verwendet, ist das ein Thema von Windows.

Die über die Arduino IDE erzeugten session-bezogenen Dateien (z.B. elf) 
liegen normalerweise in einem temporären Verzeichnis 
(arduino_build_xxxxxx)unter C:\Benutzer\<user>\AppData\Local\Temp
Beitrag #5871812 wurde von einem Moderator gelöscht.
#5871820
Lesenswert?

Florian schrieb:
> Boah, was für arrogante Nicht-Antworten hier.

Ach. Und du hältst deine Antwort für besser?

> Die Arduino IDE erzeugt automatisch alle Dateien, die gebraucht werden

Ja. Und gegen Abend ist mit zunehmender Dunkelheit zu rechnen.

> Das Problem ist, daß diese
> super versteckt und verstreut werden und immer wieder gelöscht.

Warum sollte das ein Problem sein?

> Da es ohne die HEX-Datei nicht geht

Falsch. avrdude kann schon seit Ewigkeiten das ELF File lesen, das aus 
dem Linker fällt. Es gibt keinen Grund mehr, den Zwischenschritt mit der 
Erzeugung eines HEX Files zu gehen. Außer vielleicht, wenn man eine 
hornalte Toolchain hat.

Aber all das erklärt immer noch nicht, was der TE mit dem HEX File 
will. Und warum es ihm nicht reicht, daß die Arduine IDE es ihm auf sein 
Board flashen kann.
Beitrag #5871822 wurde von einem Moderator gelöscht.
Beitrag #5871828 wurde von einem Moderator gelöscht.
Beitrag #5873241 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren