Ich habe dieses Tutorial zum Flashen meines Arduino R3 befolgt , um daraus eine "USB-Tastatur" zu machen, aber der Artikel erklärt nicht, wie das Hex funktioniert, es ist nur eine Selbstverständlichkeit. Wo kann ich lernen, wie ich meine eigene Hex-Datei erstelle, damit mein Arduino jedes USB-Gerät nachahmt?
7
Antworten:
Die HEX-Datei ist einfach eine übersetzte Version der ausführbaren AVR-Datei, die wiederum eine übersetzte Version des AVR-Quellcodes ist.
Es gibt viele Tools, mit denen Sie AVR-Quellcode in eine ausführbare AVR-Datei umwandeln (kompilieren) können, einschließlich, aber nicht beschränkt auf Arduino IDE , Ino , AVR-GCC und Atmel Studio . Beachten Sie, dass alle vier Tools den Code auf dieselbe Weise kompilieren, da AVR-GCC von den anderen drei unter der Haube verwendet wird.
Sobald Sie den Code kompiliert haben, können Sie mit avr-objcopy die entsprechenden Abschnitte aus der ausführbaren Datei in HEX-Dateien extrahieren, um sie in Flash und EEPROM zu programmieren.
Anschließend können Sie mit AVRDUDE die verschiedenen HEX-Dateien auf das Zielgerät hochladen.
Beachten Sie, dass die USB-Bibliotheken in Arduino / Ino und AVR LibC begrenzt sind. Sie müssen Atmel Studio verwenden, wenn Sie alle USB-Funktionen nutzen möchten.
quelle
Es gibt viele Websites, die dokumentieren, wie solche erstellt / erstellt werden.
Bitte beachten Sie, dass die DFU beim Versuch auf dem Uno R3 den Code auf dem 16U2 und nicht auf dem 328p aktualisiert.
Ich würde Anfängern empfehlen, den Leonardo zu verwenden. Wo es in der IDE Beispiele für die Verwendung der Anwendung direkt als USB-HID gibt. Vermeiden Sie Änderungen am Bootloader oder am USB-zu-Seriell-Co-Prozessor-Chip (16u2). Es viel einfacher machen.
quelle
Es ist möglich, aber es ist ziemlich schwierig (besonders wenn Sie sowohl den 8u2 als auch den 16u2 modifizieren möchten. Ich würde den Teensy empfehlen ( https://www.pjrc.com/teensy/index.html ), den ich kürzlich veröffentlicht habe Frage zu einer ähnlichen Frage wie Sie und nachdem ich von all den Gefahren gehört hatte, entschied ich mich für den Teensy. Ich habe standardmäßig eine viel umfangreichere USB / HID-Unterstützung (Sie können sofort mit Ihrem Projekt beginnen, anstatt zu versuchen, die UNO zu modifizieren). Teensys sind auch relativ billig und kosten zwischen 18 und 24 US-Dollar.
Zum Vergleich: UNOs kosten 27,18 USD und sind nicht vorrätig. Um fair zu sein, werden beide wahrscheinlich billiger verwendet. Dies ist wahrscheinlich umstritten, da Sie anscheinend bereits eine haben. Weitere Informationen finden Sie in meiner Frage ( Machbarkeit des Flashens von Arduino UNO r3 mit teensy Firmware für HID-Emulationszwecke (Tastatur) ).
quelle
Sie müssen nichts Magisches tun. Hier erfahren Sie, wie Sie die Partner der Arduino IDE verwenden können.
Sobald Sie eine Skizze kompiliert oder hochgeladen haben, wird die .hex- Datei automatisch erstellt und auf dem Laufwerk Ihres Computers gespeichert, auf dem das Betriebssystem installiert ist (ich habe dies unter Windows gefunden). Sie können darauf zugreifen, indem Sie zu dem Verzeichnis navigieren, das temporäre Dateien enthält.
Normalerweise lautet der Pfad wie folgt: C:> Benutzer> Admin> AppData> Lokal> Temp
Jetzt sehen Sie (viele) Verzeichnisse mit Namen, die wie "build" lauten ... gefolgt von einer großen Zahl. Eines dieser Verzeichnisse enthält vom Compiler generierte Dateien des gesuchten Codes. Von diesem Speicherort aus können Sie (z. B. mit Windows Explorer) die gesuchte Hex- Datei anhand des Datums und der Uhrzeit der letzten Änderung suchen und identifizieren .
Sobald Sie Ihre .hex- Datei erhalten haben, können Sie sie mit Atmel FLIP auf Ihr Arduino hochladen, nachdem Sie den Mikrocontroller Ihres Arduino in den DFU-Modus (Device Firmware Upgrade) versetzt haben. Atmel FLIP, eine Abkürzung für FLexible In-System Programmer, kann dank seiner minimalen Benutzeroberfläche sehr einfach verwendet werden.
So verwenden Sie FLIP:
Ich habe dies mit ATXmega verwendet, das USB unterstützt, aber es ist nicht für alle gleich.
quelle