Mastodon katzenjens' Technik-Blog: Digispark Bootloader unter Windows kompilieren und weitere Tipps Mastodon

11.07.2022

Digispark Bootloader unter Windows kompilieren und weitere Tipps



Die schmerzarme Methode ist es natürlich, unter Linux (Debian / Ubuntu) Systemen den Bootloader nach seinen Wünschen zu bearbeiten. Aber nicht jeder ist dazu in der Lage oder man will einfach in seinem Microsoft-Revier bleiben. Dieses ist hier eine Sammlung aber auch Gedächtnisstütze für mich selbst.

Unter Debian-basierten Betriebssystemen inkl. dem Raspberry wird die Umgebung wie folgt installiert:

sudo apt-get install -y gcc-avr avr-libc binutils-avr avrdude

Danach wird der komplette Source heruntergeladen, entpackt und in ein User-Verzeichnis der Wahl entpackt. Zur Bearbeitung benötigt man keine Root-Rechte. Die readme und Makefile Dateien enthalten alle relevanten Informationen. Läuft direkt. Ausser wenn der Bootloader zu groß wird, muss man in der passenden Makefile.inc die Bootloaderadresse anpassen. Wie das geht, ist direkt dort erklärt. Ansonsten gibt es keine Hürden. Der Code ist selbsterklärend.

Unter Windows, bei mir Windows 11, ist es alles etwas murkeliger. Dort benötigt man als Umgebung erstmal die Toolchain von hier. Diese installiert sich dann nach C:\SysGCC und erstellt eine Erweiterung im Systempfad. Blöderweise ist das Brennprogramm AVRDUDE in einer grottenalten Version drauf. Das wirft bisweilen Fehler aus. Also als nächstes die aktuelle AVRDUDE Version herunterladen und diese Dateien direkt nach C:\SysGCC\avr\bin kopieren.

Wenn man lieber mit grafischer Oberfläche brennen will, ist AVRDUDESS das Mittel der Wahl. Dort muss man sich gegebenenfalls aber selbst um die Programmierung der Fuses kümmern. Irgendwas ist ja immer...

Aber bis es soweit kommt, muss der Compiler erstmal rennen. Also auch hier den Source runterladen. Netterweise sind dort auch die Windows-Treiber vorhanden, welche bisweilen auch für Ärger sorgen. Aber es gibt in den Readme auch Tipps. Z.B. mittels ZADIG den passenden libusb-Treiber hinzubiegen. Muss man zum Glück nur einmal machen. Ist aber bisweilen ein dorniger Weg.

Es wäre alles so einfach, wenn man, wie unter Linux, in das Verzeichnis ~\micronucleus-master\firmware eintauchen könnte und im Terminal einfach "make CONFIG=t85_default" eingibt. Nö, das geht so nicht, weil die Makefile im firmware-Verzeichnis nicht ganz Windows-kompatibel ist. Aber ich habe da mal etwas vorbereitet. Einfach diese modifizierte Makefile herunterladen. Das Original umbenennen und die modifizierte Version in das \firmware Verzeichnis schieben. Oder alternativ Coreutils 5.3.0 herunterladen und installieren. Ab jetzt funktioniert auch das Kompilieren. Nun kann man auch den Bootloader nach seinen Wünschen anpassen. Ich z.B. habe ihn derart verändert, dass er nach erfolgreicher Programmierung über die Arduino-Umgebung nur noch über eine Brücke zwischen GND und P0 aktiv wird. Das spart Zeit und verhindert doppeltes Tüdeln beim Reinstecken.

Dazu öffnet man im Verzeichnis t85_default die Datei bootloaderconfig.h mit einem Editor, geht zur Zeile 161 und macht aus dem #define ENTRYMODE ENTRY_ALWAYS ein #define ENTRYMODE ENTRY_JUMPER . Zusätzlich ändert man in Zeile 238 den Wert von #define AUTO_EXIT_MS           6000 nach 0 . Dann funktioniert der Bootloader so wie man es wünscht und er passt immer noch in den Bereich rein.

Mit t85_aggressive hatte ich leider keinen großen Erfolg. Einige meiner PCs meckern beim Einstecken des Digispark und er funktioniert nicht.

Wenn das kompilieren geklappt hat, kann man mit AVRDUDESS die main.hex in den Digispark laden und die Fuses per Hand bei Bedarf setzen. Lfuse E1 Hfuse DD EFuse FE. Die Resetleitung als zusätzlichen Port zu verwenden ist nur für Notfälle interessant, da die Nachteile überwiegen. Ich sag nur... HV-Fuse Resetter in einem anderen Beitrag von mir. Über die Kommandozeile mit avrdude brennen geht im Prinzip auch, aber in der Makefile ist der USBasp Programmierer voreingestellt. Andere müssten da von Hand reingefrickelt werden inkl. passenden COM-Port. Will man das? Daher lieber AVRDUDESS Klickibunti.

Hat das mit dem Bootloader geklappt, kann man zum Arduino-System wechseln. Dort installiert man über diese Anleitung den Kram falls nicht schon geschehen.

Diese Anleitung ist auch für mich, wenn ich nach langer Zeit mal wieder alles vergessen habe...

Keine Kommentare:

Kommentar veröffentlichen