Forum: Mikrocontroller und Digitale Elektronik Hex file mit Arduino erzeugen?!


von Gunnar (Gast)


Lesenswert?

Hallo
Hat von euch schon mal wer eine Hex Datei mit Arduino erzeugt?
Ich habe schon einige Anleitungen versucht aber leider ohne Erfolg.
System ist ein Linux

von Info (Gast)


Lesenswert?

Gunnar schrieb:
> einige Anleitungen versucht

Welche?

Gunnar schrieb:
> aber leider ohne Erfolg.

D.h.?

von Einer K. (Gast)


Lesenswert?

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

Wenn ich wüsste, wie für dich eine Hex Datei aussieht, dann würde ich 
vermutlich "Ja" sagen.

von OssiFant (Gast)


Lesenswert?

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

Wozu?

von Bibi Blocksberg (Gast)


Lesenswert?

Hex Hex

von A. M. (Gast)


Lesenswert?

Was sind deine Ausgangsdaten?

von Timmo H. (masterfx)


Lesenswert?

Also ich weiß jetzt nicht wie der Pfad bei Linux ist, aber unter Windows 
landet nach dem Kompilieren das Hex-File einmal mit und einmal ohne 
Bootloader in "%TEMP%\arduino_build_1234556"

von GEKU (Gast)


Lesenswert?

Intel Hexfile 16 oder 32 Bit?
Motorola Hexfile ?

von Jens M. (schuchkleisser)


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.

: Bearbeitet durch User
von Einer K. (Gast)


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.

von Axel S. (a-za-z0-9)


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.

: Bearbeitet durch User
von Wolfgang (Gast)


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.

von PittyJ (Gast)


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.

von Jens M. (schuchkleisser)


Lesenswert?

Via SD-Karte z.B.
Oder übertragen des Bin und HEX über serielle Schnittstelle.
Oder USB-Host.

von Karl M. (Gast)


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?

von Florian (Gast)


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.

von micha54 (Gast)


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

von Michael U. (amiga)


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

von Einer K. (Gast)


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.

von Wolfgang (Gast)


Lesenswert?

PittyJ schrieb:
> Mein Arduino hat sehr wenig Speicher (Ram) und überhaupt kein
> Filesystem.

Dann nimm einen Arduino Due. Da hast du mehr Luft ;-)

von Thomas R. (r3tr0)


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.

von Wolfgang (Gast)


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

von Michael U. (amiga)


Lesenswert?

Hallo,

was habt ihr eigentlich alle dagene, einfach den Menüpunkt in der IDE
Sketch-->Kompilierte Binärdatei exportieren
zu benutzen?

Gruß aus Berlin
Michael

Beitrag #5871812 wurde von einem Moderator gelöscht.
von Axel S. (a-za-z0-9)


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.
von Hamburger (Gast)


Lesenswert?

PittyJ schrieb:
> Früher mit den 8-Bittern habe ich einiges angestellt, aber da war
> zumindest ein Diskettenlaufwerk dran.

GEEIIIILER Typ!

Beitrag #5873241 wurde von einem Moderator gelöscht.
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.