Dienstag, 27. September 2016

Programme als Hex

Manchmal kommt es vor, dass man ein tolles Programm geschrieben hat, und es weitergeben möchte. Dabei möchte man jedoch nur das Programm an sich weitergeben und nicht den Code des Programms. Wie das geht wird hier erklärt.

Wenn man ein Programm geschrieben hat und auf den Arduino (hier bei amazon.de) hochladen möchte, so muss das Programm erst in ein, für den Arduino lesbares Format umgewandelt werden. Um Ende dieser Umwandlung steht eine Hex Datei. Oben seht ihr einen Ausschnitt der Hex Datei, die entsteht, wenn man den Blink Sktech auf den Arduino lädt. Diese Hex Datei kann man dann an seinen Freund oder sonst wen weitergeben. Ich möchte jedoch nicht verschweigen, dass es prinzipiell möglich ist diesen Code teilweise zurück in Assembler zurück zu wandeln. Dadurch kann man mit einem geschulten Auge also einen Teil des Programms trotzdem noch auslesen. Wie man den Arduino mit Assembler programmiert, wird hier erklär.

Hex Datei finden

Zunächst einmal müssen wir im ersten Schritt die Hex Datei eures Codes finden. Diese wird jedes mal neu erzeugt, wenn ihr euer Programm hochladet. Dabei wird die Hex Datei im Temp Ordner von Windows gespeichert. Um herauszufinden, wo genau müsst ihr die ausführliche Ausgabe in der Arduino IDE aktivieren. Dazu muss man auf Datei > Voreinstellungen klicken.
Sobald ihr nun euren Sketch kompiliert seht ihr unten im Ausgabefenster den Link zur Datei:
Sobald ihr nun diesen Ordner im Windows Explorer öffnet findet ihr eine Hex Datei. Diese könnte ihr mit dem Editor öffnen:

Hex Datei auf Mikrocontroller laden

Um Hex Dateien auf den Arduino zu laden verwendet die Arduino IDE das Programm avrdude. Diese kann man auch "manuell" zum Hochladen verwenden. Es geht jedoch einfacher mit einem Trick. Wie ihr vielleicht gemerkt habt, kann man mit der Arduino IDE einen Bootloader auf einen Mikrocontroller laden. Dieser Bootloader liegt als Hex Datei vor. 

Es ist möglich die gefundene Hex Datei, wie den Bootloader zu benennen und die original Bootloader Hex um zu benennen. Dadurch lädt die Arudino IDE beim Klick auf Bootloader brennen eure Programm Hex hoch. Die Bootloader befinden sich im hardware Ordner, entweder im Ordner der Arduino IDE oder im Sketcheordner.

1 Kommentar:

  1. Ich konnte diesen Tip gerade gut gebrauchen. Auf den Arduino geflasht habe ich allerdings die Datei "Blink.ino.with_bootloader.hex" am gleichen Speicherort und zwar mit Atmel-Studio 7(Tools -> Device Programming).

    AntwortenLöschen

Mit dem Veröffentlichen eines Kommentars erklären Sie sich mit unserer Datenschutzerklärung einverstanden.
https://michaelsarduino.blogspot.de/p/datenschutzerklarung.html