AVR, ferngesteuert

Die AVRs der 0/1-Serie verwenden zum Programmieren und Debuggen UPDI, welches etwas vereinfacht gesprochen ein auf UART basierendes Protokoll ist.

Dementsprechend hat es nicht lange gedauert, bis es pyupdi entstanden ist. Mit diesem Tool bzw. Library reicht eine serielle Schnittstelle vom PC (mit TTL-Level) und ein Widerstand, um Programmcode auf den Mikrocontroller zu bekommen.

Neben den Programmierfunktionen bietet die Schnittstelle ebenfalls die Möglichkeit zu Debuggen. Zu dem Funktionsumfang gehört gleichermaßen das Auslesen und Schreiben von Registern. Warum das nicht einfach nutzen, um direkt über den PC die Ports und Peripherie-Module des Chips zu verwenden?

Das Schreiben und Lesen im Adressraum der CPU sind gut dokumentiert, der einzige Haken ist, dass eine etwaig geflashte Firmware weiterläuft und einem die Suppe versalzen kann (oder andersrum). Zum Debuggen gehört natürlich auch, die Ausführung der CPU anzuhalten, wozu ich allerdings keine Dokumentation bzw. Informationen finden konnte. Aber macht nichts, einiges vom Protokoll ist ja bekannt und ein bisschen Reverse Engineering bin ich ja nicht abgeneigt. Unterm Strich ist es anscheinend recht trivial: Es muss ein Key geschrieben werden und in ein „reserviertes“ Control-Register eine 1 zum Anhalten und eine 2 zum Ausführen schreiben.

Mehr Details und ein kurzes Demo-Video ist im updizombie-Repository zu finden.

Unc2Clipboard – f..k me on GitHub

es ist natürlich „fork“ gemeint.

Ich habe mich lange gesträubt, einen Webservice für SCM (source code management) zu verwenden. Ok, ehrlich gesagt: für private Basteleien ist die Faulheit relativ groß, ein Werkzeug wie Subversion, Git oder Zip-Dateien zu verwenden.

Aber manchmal muss man einfach ein bisschen mit der Zeit gehen.

Das erste „vollständige“ Projekt ist ein kleines und hoffentlich praktisches Werkzeug für alle, die gemeinsam auf Netzwerkfreigaben auf Netzwerkfreigaben arbeiten: Unc2Clipboard.

Problemstellung: Man hat eine Ordnerfreigabe als Netzlaufwerk gemappt und möchte einen Link darauf teilen. Windows hat im Kontextmenü des Explorer zwar die Funktion „Als Pfad kopieren“ (man muss die Umschalttaste gedrückt halten, damit der Eintrag erscheint), allerdings hierbei wird der Pfad mit Laufwerksbuchstaben kopiert. Dieser funktioniert auf PC A, aber nicht zwangsläufig auf PC B.

Um Netzwerkressourcen zu adressieren benutzt Windows die Uniform Naming Convention, die unabhängig von lokalen Mappings funktioniert.

Lösung: Mit Unc2Clipboard wird ein neuer Eintrag im Kontextmenü erzeugt, mit dem der Pfad entsprechend formatiert und in die Zwischenablage kopiert werden kann:

Der Code ist unter https://github.com/chris-heo/Unc2Clipboard zu finden, für die Mutigen gibt es auch einen v1.0 Release mit Kompilat. Auch oder gerade weil der Code mit bestem Wissen und Gewissen zusammenkopiert wurde gilt: Benutzung auf eigene Gefahr.