EMBEDDED PROJECTS JOURNAL
100% frei und kostenlos,
als PDF und in gedruckter Form,
per Open Source Lizenz
AVR-RISC (Infos)
Embedded Software selbst entwickeln
(inkl. Absatz über USBprog)
AVR-Starterkit für 61,90 EUR
Quicklinks: Home | Online Firmware Pool | Shop
     

USBprog Flashtools

Bernhard Walle, <bernhard.walle@gmx.de>, 2007-12-23

Ein neues Flashtool (Kommentar von Benedikt Sauter)

Diese Flashtool löst alle bestehenden Programme wie (Flashtool 0.2 und 0.3 ab). Bernhard Walle hat für USBprog aus der alten Bibliothek eine neue geschrieben die jetzt in der grafischen Anwendung und im Konsolenprogramm eingestetzt wird. An dieser Stelle ein riesen Dank für den Einsatz!

Übersicht

Mit dem USBprog-Tool kann die Firmware des USBprog-Geräts einfach gewechselt werden. Es unterstützt

  • das Herunterladen der Firmware von einem Online-Pool,

  • einen Offline-Modus (Cache) zum Betrieb an PCs ohne Internet,

  • das Hochladen von lokalen Firmwaredateien zum Testen,

  • mehrere USBprog-Geräte an einem PC und

  • das Anzeigen von Informationen über eine Firmware, inkl. der Pinbelegung.

Von USBprog gibt es sowohl eine GUI-Version als auch eine Kommandozeilen-Version. Die Kommandozeilen-Version verfügt über einen interaktiven Modus (wie eine Shell) und einen Batch-Modus, kann daher problemlos in Skripte, Makefiles o.ä. integriert werden.

Beide Versionen verwenden die gleichen Funktionen, um auf das Gerät zuzugreifen und um den Firmware-Cache zu verwalten. Dies wurde damit realisiert, dass diese Funktionen in einer Bibliothek gekapselt sind. Somit wird die Konsistenz beider Versionen gewahrt und die Entwicklung vereinfacht.

Sowohl die GUI-Version als auch die Kommandozeilen-Version laufen unter Microsoft Windows und Linux. Eine Portierung auf anderen Unix-artige Betriebssysteme sollte sehr einfach möglich sein, wenn auch den Autoren die Zeit fehlt, dies zu testen.

Screenshots

Da ein Bild bekanntlich mehr als tausend Worte sagt, hier ein Screenshot sowohl der GUI- als auch der Kommandozeilen-Version, um einen Eindruck der Applikation zu bekommen.

GUI-Version (unter Linux)

Screenshot der GUI-Version

Kommandozeilenversion (unter Linux)

Screenshot der Kommandozeilenversion

Installation

Linux

Kompilieren aus dem Quellcode

Zunächst sollte sichergestellt werden, dass das System folgende Abhängigkeiten erfüllt:

  • libusb zum Zugriff auf das Gerät,

  • libxml zum Parsen der Firmwarebeschreibungsdatei,

  • libcurl zum Downloaden der Firmware,

  • readline zum einfachen Editieren der Kommandozeile (optional),

  • wxWidgets, falls die GUI-Version kompiliert werden soll und natürlich

  • ein hinreichend neuer C++-Compiler wie den g++.

Nachdem dies sichergestellt wurde, erfolgt die Installation ganz üblich mit:

  1. Auspacken des Tarballs und Wechseln in das Verzeichnis,

  2. Ausführen von ./configure,

  3. make zum Kompilieren und schließlich

  4. make install zum Installieren der Dateien (als Administrator).

Binärpakete

Distributionsunabhängige Binärpakete unter Linux sind mit einem relativ großen Aufwand verbunden (praktisch alle Bibliotheken müssten statisch hinzugebunden werden) und werden von uns nicht angeboten. Die Installation aus dem Quellcode ist hinreichend einfach — und die Zielgruppe von USBprog sind ja letztendlich Entwickler.

Allerdings ist unser Ziel die Aufnahme in alle verbreiteten Distributionen. Pakete für openSUSE finden sich im openSUSE Build Service unter http://download.opensuse.org/repositories/electronics/. Das entsprechende Repository kann dem Paketmanager (YaST oder smart) hinzugefügt werden, somit kann mit relativ wenig Aufwand sichergestellt werden, dass immer die neuste USBprog-Version auf dem System installiert ist.

Beispiel für zypper (openSUSE 10.3)
$ zypper ar -r \
http://download.opensuse.org/repositories/electronics/openSUSE_10.3/electronics.repo
$ zypper ref
$ zypper install usbprog usbprog-gui

Das Angebot für openSUSE hängt schlicht damit zusammen, dass der Autor des USBprog-Programms bei SUSE arbeitet und soll keine Präferenz für eine Distribution darstellen. Von uns werden alle verbreiteten Distributionen unterstützt.

Wenn Sie in der Lage sind, Pakete für eine (verbreitete) Distribution zu bauen und auf Dauer zu pflegen, melden Sie Sich bitte auf der USBprog-Mailingliste.

Zugriffsrechte

Standardmäßig kann nur der Administrator unbeschränkt auf USB-Geräte zugreifen. Damit dies auch dem einfachen Benutzer möglich wird, müssen udev und HAL entsprechend konfiguriert werden, die jeweiligen Dateien unter /dev/bus/usb auch für normale Benutzer schreibbar zu machen.

Unter openSUSE reicht das Anlegen einer Datei /etc/hal/fdi/policy/20customized mit folgendem Inhalt:

<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<!-- USBprog in update mode or various demos -->
<device>
<match key="info.bus" string="usb_device">
<match key="usb_device.vendor_id" int="0x1781">
<match key="usb_device.product_id" int="0x0c62">
<merge key="resmgr.class" type="string">scanner</merge>
</match>
</match>
</match>
</device>
<!-- Atmel AVR ISP MKII -->
<device>
<match key="info.bus" string="usb_device">
<match key="usb_device.vendor_id" int="0x03eb">
<match key="usb_device.product_id" int="0x2104">
<merge key="resmgr.class" type="string">scanner</merge>
</match>
</match>
</match>
</device>
</deviceinfo>

Damit werden USBprog-Geräte wie Scanner behandelt, was entsprechend bedeutet, dass der gerade (direkt, nicht über SSH) eingeloggte Benutzer auf das Gerät zugreifen darf.

Microsoft Windows

Die USBprog-Software läuft unter Windows 2000 und XP. Die DOS-basierten Windows-Versionen 95, 98 und ME werden nicht unterstützt.

Da ein Installer verwendet wird, ist die Installation unter Windows denkbar einfach:

  1. Laden Sie die Datei aktuelle USBprog-Version herunter.

  2. Führen Sie die Installationsdatei aus und folgen Sie den Anweisungen. Beachten Sie, dass das Treiberpacket zwingend notwendig ist.

  3. Beim Anstecken des USBprog sollte ihn Windows im “Updatemodus” erkennen und beginnt mit der Plug-&-Play-Treiberinstallation.

  4. Wählen Sie bei der Treiberinstallation die Option Software automatisch installieren.

  5. Nun kann USBprog mit Hilfe des Flashtools aktualisiert werden.

Warning: 

Wechseln in den Update-Modus

Unter Windows sollte vor dem Wechseln immer manuell in den Update-Modus gebracht werde! Mehr Infos dazu gibt es hier.

Verwendung

Nach der Installation sollte das Gerät zunächst getestet werden. Hierzu bietet sich die “blinkdemo” Firmware an. Die Bedienung der GUI-Version sollte hinreichend selbsterklärend sein. Gestartet wird die Software unter Windows über das entsprechende Icon, unter Linux über die Programmdatei usbprog-gui.

Kommandozeilenversion

  1. Starten Sie die Kommandozeilenversion in einem Terminal mit dem Aufruf von usbprog.

  2. Das Programm lädt nun online eine Indexdatei herunter. Lassen Sie sich mit list eine Liste aller verfügbaren Firmwaredateien anzeigen.

  3. Laden Sie mit download blinkdemo die oben erwähnte “blinkdemo” Firmware herunter.

  4. Zeigen Sie sich mit devices alle verfügbaren USBprog-Geräte an. Mindestens ein Gerät sollte in der Liste enthalten sein. Falls das USBprog-Device bereits im Updatemodus ist, sollte dies in der Liste bereits mit einem Stern markiert sein. Andernfalls geben Sie manuell mit device 0 an, dass das erste Gerät als Updategerät verwendet werden soll.

  5. Laden Sie nun mit upload blinkdemo die “blinkdemo” Firmware auf das Gerät. Die Firmware sollte automatisch starten.

Hilfe

Das Kommandozeilenprogramm gibt mit dem Kommando help eine Liste aller verfügbaren Kommandos aus. Mit helpcmd Kommando kann man sich spezifische Hilfe zu einem Kommando ausgeben lassen.

Unter Linux sind zu beiden Programmen (also usbprog und usbprog-gui) Manpages installiert. Diese erhalten ebenfalls eine Kurzzusammenfassung der entsprechenden Befehle und Optionen.

Downloads

Bugs

Bitte melden Sie Programmfehler auf der USBprog-Mailingliste oder im USBprog-Forum.

 © 2007 by Embedded Projects, Benedikt Sauter