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)
http://www.theengineeringprojects.com/2015/10/hex-file-arduino.html oder eben direkt aus dem Arduino Studio mittels angeschlossenen Debugger hochladen, dazu halt die Programmiermethode ändern. Alles mit ein paar einfachen Worten per Google findbar.
Ich dachte immer, ein Ino-File wäre der Sourcecode, den man noch compilieren müßte. Also nicht nur gcc objcopy oder ähnliches.
Kompilieren macht Arduino automatisch vorm hochladen, bzw manuell wenn man ein hex File erzeugen lässt.
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. ;)
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. ;)
Schlaumaier schrieb: > im 2. Eintrag findest du den Path wo sich das HEX-File befindet. ;) In der neuen IDE gibt es sogar einen Menüeintrag dafür.
Philipp K. schrieb: > In der neuen IDE gibt es sogar einen Menüeintrag dafür. In der alten auch, nennt sich "Kompilierte Binärdatei exportieren" im Menü "Sketch". Dann landet die HEX-Datei (oder bei manchen Boards zwei davon, eine ohne Bootloader und eine mit Bootloader) im Sketch-Ordner. LG, Sebastian
:
Bearbeitet durch User
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. ;)
Vielen Dank, ihr seid super! Dann weiß ich, was ich wissen muss und mache das Hex mit der Arduino-IDE.
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.
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
|
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
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.
Manfred schrieb: > Interessant, Shift-Hochladen kannte ich noch nicht. Gibt sogar einen Menüpunkt! Sketch-->>Hochladen mit Programmer
Manfred schrieb: > Ist ein guter Tip, damit kann man > also eine blanken AVR ohne USB aus A*IDE bespielen. ja, ich mache es fast nur noch so - das Bootloader-Rumgekasper ist mir zu doof, so werden selbst nackte / fabrikneue Atmels einfach geflasht Leider kann die Arduino-IDE die Fuses nicht setzen ...
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.
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 ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.