Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
7. Hostsoftware<br />
(www.trolltech.com), da dieses auf Windows, Linux und MacOS X verfügbar ist, sehr ausgereift<br />
ist und wir von der Erfahrung von Andreas Eicher, Assistent im Microlab, profitieren<br />
konnten. Qt ist ein Framework für C++, so stand auch die Programmiersprache fest. Java<br />
war keine Option, weil die USB Schnittstelle nicht unterstützt wird.<br />
Qt wird von Trolltech unter verschiedenen Lizenzen angeboten. Eine Variante ist die GNU<br />
Public License (GPL), die einen Entwickler dazu zwingt ein Projekt, das GPL Software benutzt,<br />
auch unter die GPL zu stellen und mit allen Sourcecodes zu veröffentlichen. Qt wird<br />
nur in der Version 4 und höher auch auf Windows unter der GPL angeboten. Die andere<br />
Variante ist eine kommerzielle Lizenz, die von Trolltech erworben werden kann. Damit muss<br />
der Sourcecode eines Projektes nicht veröffentlicht werden. Zur Zeit wird von uns Qt 4.1.2 in<br />
der GPL Version benutzt aber die Frage der Veröffentlichung unserer Software konnte noch<br />
nicht geklärt werden.<br />
Um zu verhindern, dass unter Linux ein eigenes Kernelmodul entwickelt werden muss,<br />
greiffen wir auf die libusb zurück (libusb.sourceforge.net, Version 0.1.12), ein Open-Source<br />
Projekt unter der LGPL. Die LGPL erlaubt eine uneingeschränkte Verwendung in eigenen<br />
Projekten aber Änderungen an der libusb müssen veröffentlicht werden. Mit der libusb kann<br />
direkt aus einem Anwenderprogramm auf USB Geräte zugegriffen werden. Folgende Plattformen<br />
werden unterstützt: Linux, *BSD und MacOS X<br />
Für Windows existiert ein anderes Projekt (libusb-win32.sourceforge.net), das die libusb<br />
portiert hat und die selbe API besitzt. So ist es theoretisch möglich, unsere Hostsoftware<br />
auf Windows, Linux und MacOS X einzusetzen. Die Software wurde unter Linux entwickelt<br />
und getestet. Leider reichte die Zeit nicht aus, die Portierbarkeit unserer Software und der<br />
libusb zu testen.<br />
Unter Windows steht als Option weiterhin die Entwicklung eines eigenen Treibers zur Verfügung,<br />
da von Cypress dazu Beispiele vorhanden sind. Dies erleichtert den Einstieg in die<br />
Treiberprogrammierung enorm.<br />
7.2. Realisierung<br />
Da keiner von uns Erfahrung in der C++ Programmierung hatte, mussten wir in kurzer Zeit<br />
einen Überblick bekommen. Dabei war uns Andreas Eicher und das Buch [Bre03] behilflich.<br />
Die Hostsoftware wurde in mehrere Klassen und mehrere Applikationen unterteilt. Das<br />
zentrale Element ist die QGecko Klasse. Sie ist von der Klasse QObject, der Grundklasse<br />
des Qt Frameworks, abgeleitet. Sie stellt alle Funktionen bereit, die zur Administration und<br />
Kommunikation mit dem Gecko Board benötigt werden. Die USB Zugriffe sind vollständig<br />
gekapselt.<br />
Aufbauend auf dieser Klasse wurden zwei Applikationen erstellt: Der Gecko Administrator<br />
und das Simplecom. Der Gecko Administrator stellt ein graphisches Interface für alle<br />
administrativen Aufgaben des Gecko Boards zur Verfügung. Das Simplecom diente uns zum<br />
testen der Kommunikation mit dem FPGA und zeigt, wie einfach eine Applikation mit dem<br />
FPGA Daten austauschen kann. Der Sourcecode vom Simplecom dient als Beispiel zur Verwendung<br />
der QGecko Klasse zur Kommunikation mit dem Gecko Board. Die Sourcecodes<br />
sind im Anhang E.3 zu finden.<br />
Die implementierten Funktionen der Hostsoftware wurden getestet und funktionierten.<br />
Ein kurzer Blindtest, von Personen die die Software noch nicht kannten, hat ergeben, dass<br />
sie keine Fehlfunktion auslösen konnten. Limitierend ist zur Zeit einzig, dass unter Linux<br />
38 Christoph Zimmermann