Kann man ein Arduino-File direkt in ein Hex-File umwandeln?

Gast #6747477
Lesenswert?

Hallo,
kann man ein Arduino-File in ein Hex-File umwandeln, um es direkt, also 
ohne Arduino-Hardware, auf einen AVR-Controller flashen zu können?

Ich habe hier ein .ino-File, dass ich gerne direkt auf einen Atmega 
brennen möchte.
Habe aber nur einen AVRISP MKII und einen Programmieradapter dafür zur 
Hand und würde das erzeugte Hex-File z.B. vom AVR-Studio aus auf den 
Controller flashen.

(Kann die Arduino-IDE alternativ auch Hex-Files zum Flashen ausgeben? 
Wäre zwar etwas umständlicher, aber machbar)
Gast #6747584
Lesenswert?

FredMa schrieb:
> Kann die Arduino-IDE alternativ auch Hex-Files zum Flashen ausgeben?

Macht sie doch immer. Die legt die im Ordner ab, und schiebt sie dann 
hoch.

Das ist sogar dringend erforderlich weil einige Programmer mit der IDE 
nicht zurecht kommen.

Mach folgendes.

Starte die IDE, klicke auf Einstellungen, Ganz unten findest du den Text 
"Mehr einstellungen können.... " Öffne mit einen EINFACHEN Text-Editor 
die angegebenen Datei.

im 2. Eintrag findest du den Path wo sich das HEX-File befindet. ;)
Gast #6747587
Lesenswert?

PittyJ schrieb:
> Ich dachte immer, ein Ino-File wäre der Sourcecode, den man noch
> compilieren müßte. Also nicht nur gcc objcopy oder ähnliches.

Ist auch richtig. Die INO ist nur eine lausige Text-Datei. Die IDE 
kompiliert die (haut die Libs dazu etc) und erstellt das HEX-File.

Das hochladen macht ein anderer dann. ;)
Gast #6747603
Lesenswert?

Sebastian W. schrieb:
> In der alten auch, nennt sich "Kompilierte Binärdatei exportieren" im
> Menü "Sketch".

Habe ich nie benutzt. ;)  Ich habe die preferences.txt einfach von Hand 
angepasst. ;) Damit Ordnung herrscht.

Davon abgesehen macht mein VOR-Compiler das so das er jede HEX in den 
Projekt-Ordner kopiert. ;)
#6747826
Lesenswert?

Wolfgang schrieb:
> Das macht der gcc.

und von dem gibts auch verschiedene Versionen, die kann man ja im ino 
Code erfragen
1
#define GCC_DEBUG
2
#ifdef GCC_DEBUG
3
  Serial.print(F("__VERSION__         = ")); Serial.println(__VERSION__); // versio_
4
  Serial.print(F("__GNUC_MINOR__      = ")); Serial.println(__GNUC_MINOR__);
5
  Serial.print(F("__GNUC_PATCHLEVEL__ = ")); Serial.println(__GNUC_PATCHLEVEL__);
6
#endif // #ifdef GCC_DEBUG
#6747830
Lesenswert?

FredMa schrieb:
> Habe aber nur einen AVRISP MKII und einen Programmieradapter dafür zur
> Hand und würde das erzeugte Hex-File z.B. vom AVR-Studio aus auf den
> Controller flashen.

Warum flashst Du nicht einfach direkt mit der Arduino IDE?

Du musst nur beim Pfeil "hochladen" die Shift-Taste drücken - dann kommt 
"hochladen mit Programmer"

Vorher musst Du in Werkzeuge - Programmer deinen AVRISP auswählen, 
natürlich noch COM-Port anpassen
Gast #6747844
Lesenswert?

Wolfgang schrieb:
> Schlaumaier schrieb:
>> Die IDE kompiliert die (haut die Libs dazu etc) und erstellt das HEX-File.
> Die IDE compiliert überhaupt nichts. Das macht der gcc.

Du hast ja recht, trotzdem werfe ich Dir Wortklauberei vor. Der Vorteil 
der A*IDE ist ja gerade, die Konfiguriererei des GCC vor dem Benutzer zu 
verbergen.

Heinz R. schrieb:
> Warum flashst Du nicht einfach direkt mit der Arduino IDE?
>
> Du musst nur beim Pfeil "hochladen" die Shift-Taste drücken - dann kommt
> "hochladen mit Programmer"

Interessant, Shift-Hochladen kannte ich noch nicht. Ich nutze ISP nur, 
wenn ich den Bootloader ändern will. Ist ein guter Tip, damit kann man 
also eine blanken AVR ohne USB aus A*IDE bespielen.

> Vorher musst Du in Werkzeuge - Programmer deinen AVRISP auswählen,
> natürlich noch COM-Port anpassen

Das war bei meinem China-Clone eine längere Sucherei, mit welchem 
Programmer der Nachbau kompatibel ist.
Gast #6747906
Lesenswert?

Heinz R. schrieb:
> Leider kann die Arduino-IDE die Fuses nicht setzen ...

Das ist nicht ganz richtig!

Es bedarf allerdings einer fremden, eigenen oder modifizierten Board 
Definition dafür.
Über den Menuepunkt "Bootloader brennen" werden dann die Fuses gesetzt.
Auch wenn der Punkt so heißt, kann man doch so auf einen Bootloader 
verzichten, bzw. runter werfen.
Beitrag #6747985 wurde von einem Moderator gelöscht.
Gast #6748442
Lesenswert?

Manfred schrieb:
> Du hast ja recht, trotzdem werfe ich Dir Wortklauberei vor. Der Vorteil
> der A*IDE ist ja gerade, die Konfiguriererei des GCC vor dem Benutzer zu
> verbergen.

O.K.  Aber das macht sie so gut (das verbergen) das ich es nicht einmal 
bemerkt habe. Und solange es funktioniert und das Ergebnis stimmt, stört 
es mich auch eh nicht ;)

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