Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03142.jsonl.gz/1621

Hive: Automated Multi-Target Test Environment for probe-rs
Im Rahmen dieser Bachelor-Thesis ist ein Hardware-Testrack entwickelt und aufgebaut worden, mit dem die Open-Source-Software probe-rs vollständig getestet werden kann. Mit der Software probe-rs können Mikrocontroller programmiert werden.
von Thierry Kühni

Thierry Kühni absolvierte eine Lehre mit Berufsmatura als Automatiker bei Libs und General Electric Power. Während seiner Zeit bei GE, wo er in einem Team für die Planung von Upgrades für Gasturbinenkraftwerke arbeitete, erhielt er erste Einblicke in die Ingenieurstätigkeit und entschied sich aus diesem Grund für ein Elektro- und Informationstechnik-Studium an der FHNW. Er interessiert sich insbesondere für den Aufbau von Computern und deren Software von User-Interfaces über Betriebssysteme und Treiber bis zur Hardware.
probe-rs – die unentbehrliche Schnittstelle
Um zu verstehen, was probe-rs ist und weshalb dieses Projekt eine spezielle Lösung für das Testen der Software benötigt, muss man die Funktionsweise von Mikrocontroller verstehen: Im Grunde genommen handelt es sich bei einem Mikrocontroller nämlich um einen dezidierten Computer, der programmiert werden kann. Im Gegensatz zu einem herkömmlichen PC werden Mikrocontroller jedoch in elektronischen Systemen integriert. Sie bilden eine direkte Schnittstelle zwischen Software und Hardware und besitzen viele physikalische Pins, die mit anderer Hardware, zum Beispiel einer LED, verbunden werden können. Mikrocontroller sind praktisch überall in elektrischen Systemen eingebaut. So befinden sie sich in elektrischen Zahnbürsten, Autos oder Flugzeugen und fliegen selbst auf Raumsonden durch das Weltall, wo sie die elektronischen Komponenten der Geräte steuern und überwachen.
Normalerweise schreiben Entwickler die Programme für einen Mikrocontroller auf einem herkömmlichen PC. Dabei gibt es aber ein Problem: Wie lässt sich das Programm auf den Mikrocontroller laden? Leider handelt es sich bei Mikrocontrollern um sehr spezialisierte Systeme, die meist kein Betriebssystem besitzen. Es ist somit nicht möglich, das Programm kurz auf einen USB-Stick zu laden und so auf den Mikrocontroller zu transferieren. Für diesen Zweck gibt es aber ein spezielles Gerät: einen Debugger. Der Debugger verbindet den PC des Entwicklers mit dem Mikrocontroller. Er ist quasi der Übersetzer zwischen diesen beiden Systemen. Über den Debugger kann nun der Entwickler das Programm von seinem PC auf den Mikrocontroller transferieren.
Zur Kommunikation benötigt der Debugger eine spezielle Software. Hier kommt probe-rs ins Spiel: probe-rs ist die Schnittstelle zwischen PC und Debugger. Diese Software weist den Debugger an, mit dem Mikrocontroller zu interagieren, und liefert zudem nützliche Informationen über den Mikrocontroller selbst. Es wird also nicht nur das Programm auf den Mikrocontroller geladen, sondern probe-rs überprüft zugleich, ob das Programm auf dem Mikrokontroller korrekt läuft und keine Fehler aufweist.
Da probe-rs eng mit dem Debugger und dem Mikrocontroller zusammenarbeiten muss, reicht es nicht, nur die Software separat zu testen. Es braucht also eine Lösung, um probe-rs automatisiert gegen Debugger und Mikrocontroller zu testen, um sicherzustellen, dass ein neues Update sowohl mit unterschiedlichen Debuggern als auch Mikrocontrollern kompatibel ist. Erstaunlicherweise gibt es kaum solch spezialisierte Lösungen auf dem Markt. Deshalb war das Ziel des Projektes, sowohl Testsoftware als auch eine Testhardware zu entwickeln, welche die es ermöglicht, probe-rs automatisch gegen möglichst viele Kombinationen von Debuggern und Mikrocontrollern zu testen.
Modularer Aufbau – intelligente Software
Die Testhardware muss also in der Lage sein, möglichst viele Mikrocontroller und Debugger miteinander zu verbinden und die Debugger gleichzeitig über einen Testcontroller anzusteuern. Als Testcontroller wird ein Raspberry Pi verwendet. Auf diesem läuft das Betriebssystem Linux. Somit übernimmt er für die angeschlossenen Debugger die Funktion eines normalen PC. Gleichzeitig hat der Raspberry Pi Hardware-Pins, die das Testrack ansteuern können, um die Verbindungen zwischen Debugger und Mikrocontroller herzustellen oder zu unterbrechen.
Die einzelnen Teile des Testracks sind als Shields für den Raspberry Pi ausgelegt und lassen sich so sehr einfach aufstecken. Das Testrack ist modular und in verschiedenen Grössen aufgebaut. Die Grösse bestimmt, wie viele Mikrocontroller verbunden werden können. Die Mikrocontroller befinden sich auf einem separaten PCB (printed circuit board), das in die Slots des Testracks eingesteckt wird. Somit können mehrere Mikrocontrollern gegen probe-rs getestet werden, ohne dass das Testrack aufwändig umgebaut werden muss. Das Spezielle an diesem Aufbau ist, dass auch Mikrocontroller unterschiedlicher Marken gleichzeitig getestet werden können.
Erweiterung mit Testkanal
Das Testrack kann mit einem separaten Textkanal ergänzt werden.
Um die Testmöglichkeiten zu erweitern, können die Mikrocontroller nicht nur über den Debugger mit dem Testcontroller verbunden werden, sondern auch direkt über einen Testkanal mit dem Testcontroller. Damit ist der Testcontroller nicht gänzlich abhängig von der Verbindung über den Debugger, sondern kann selbstständig mit dem Mikrocontroller kommunizieren.