HaDesWWW logo
Startseite

Downloads
Geschichte(n)
 
Hardware
FPGA-Board
Prozessor
  Instruktionssatz
Peripherie
  XBus-Referenz
PS/2-Board
Soundboard
USB-MMC-Board
 
PC-Software
HaCom
HoAsm, HLink
Emulator
Connectivity
 
Embedded Software
HAL
Dateimanager
Tetris
PacMan
3D-Engine
Pong
PacMan 3D
 
Kontakt

HaDes XP - Der Dateimanager „Flash XP“

Überblick

Mit dem komfortablen, menü- und dialoggesteuerten sowie per Tastatur und Maus(!) bedienbaren Dateimanager Flash XP lässt sich der Festspeicher der HaDes (typischerweise eine 256 MB große MMC-Karte) bequem verwalten. Hiermit können unter Anderem Dateien per JTAG vom und zum angeschlossenen PC übertragen werden, ausführbar gemacht oder gelöscht werden, und um verschwendeten Speicherplatz wieder freizugeben, kann der Flashspeicher reformatiert werden. (Beim Reformatieren werden übrigens keine Daten vernichtet, die ganze Operation ist nur mit Kenntnis der speziellen Struktur des HFFS verständlich.) Außerdem enthält Flash XP einen Viewer für Text- und Binärdateien sowie Bilder. 

Bedienung

Der Dateimanager lässt sich sowohl vollständig per Maus als auch per Tastatur bedienen. Selbst wenn keines dieser Geräte angeschlossen ist, können die meisten Funktionen noch über die Switches auf dem TE-BL Erweiterungsboard angesteuert werden. 

Die Steuerung erfolgt vorwiegend über das Menü (das sich in der untersten Bildschirmzeile befindet). In diesem werden stets acht Felder mit Befehlen angezeigt. Diese werden (von links nach rechts gesehen) mit den Tasten [F1] bis [F8] bzw. mit den Switchtastern bedient. Die Befehle können aber alternativ auch durch simples Anklicken mit dem Mauscursor aktiviert werden. Je nach Menübefehl wird sofort eine Aktion ausgeführt (z.B. Up), das Menü gewechselt (z.B. Transfer) oder eine Dialogbox angezeigt (Delete). 

Dialogboxen können ebenfalls mit der Maus bedient werden, klicken Sie einfach auf einen der Buttons. Mit der Tastatur wählen Sie den gewünschten Knopf mit den Pfeiltasten [←] und [→] aus, und aktivieren Sie mit [ENTER].

In der Hauptansicht kann aus der Dateiliste durch Klicken eine Datei zur Bearbeitung ausgewählt werden, oder Sie benutzen die Pfeiltasten [↑] und [↓]. Im Viewer wird durch diese Pfeiltasten der Text gescrollt.

Der Desktop

Desktop Ansicht des Dateimanagers
Seit der Einführung der XMMC wird der Dateimanager auch als System-Shell verwendet. (Dies wird innerhalb des HFFS dadurch festgelegt, dass das "Shell"-Attribut für die ausführbare Datei gesetzt ist. Der Bootloader sucht die erste solche Shell-Datei und startet diese, nachdem die Hardwareinitialisierung abgeschlossen ist.)
Zu diesem Zweck enthält der Dateimanager die Desktop-Ansicht, die auch beim Start geöffnet wird. Sie enthält eine Liste aller installierten Programme (d.h. ausführbaren Dateien) mit großen Icons. Ein Programm kann per Mausklick oder über die [F1] bzw. [F2] Tasten ausgewählt werden. Ein nochmaliger Klick auf das gewählte Programm bzw. Drücken auf [F4] startet das ausgewählte Programm. Über [F7] gelangt man in die Hauptansicht, in der Dateiverwaltungs-Operationen durchgeführt werden können.

Die Hauptansicht

Hauptansicht des Dateimanagers

In der Hauptansicht (siehe Screenshot oben) wird hauptsächlich eine Liste mit allen Dateien, die sich auf dem Flash-Speicher befinden, angezeigt. Diese befindet sich im mittleren Teil des Bildschirms und kann bei Bedarf gescrollt werden. (Dieser Fall ist aber sehr selten, da er nur beim Anlegen sehr vieler kleiner Dateien auftreten kann.) Zusätzlich werden wichtige Informationen über den Belegungszustand in der Titelzeile angegeben. Die Angabe „Used: X kB, Wasted: Y kB, Free: Z kB“ bedeutet hierbei: 

  • X kB Speicher sind durch normale Dateien belegt.
  • Y kB Speicher werden derzeit verschwendet, d.h. sie sind durch gelöschte Dateien belegt. Sie werden beim nächsten Reformat wieder freigegeben. 
  • Z kB Speicher sind frei und können für zusätzliche Dateien verwendet werden. 

Das Hauptmenü enthält nur zwei Befehle, die sich direkt auswirken (alle anderen wechseln lediglich in Untermenüs bzw. den Viewer): Make Exe und Delete. Dabei kann mit Make Exe eine Datei als ausführbar markiert werden. Dies führt dazu, dass sie in der Programm-Auswahlliste bei Systemstart erscheint. Führen Sie diese Operation nur für HIX-Programmdateien durch. Delete markiert eine Datei als gelöscht. Der belegte Speicherplatz wird aber erst beim nächsten Reformat freigegeben.

DateitransferDateiübertragungs-Untermenü

Über die Transfer-Option gelangt man in das Dateiübertragungs-Submenü. Mit diesen Funktionen können Dateien mit dem PC ausgetauscht werden.

Dabei verwenden HFT Read und HFT Send das komfortable HaDes File Transfer-Protokoll, mit dem Dateien inklusive ihrem Dateinamen und Dateityp übertragen werden können und nach der Übertragung auf Fehlerfreiheit überprüft werden. Die Kommunikation wird jeweils über die JTAG-Schnittstelle durchgeführt, auf PC-Seite muss jeweils das hft-Programm gestartet werden. Dabei überträgt HFT Read Dateien vom PC auf die HaDes. Aktivieren Sie dazu zunächst den HFT Read Modus auf der HaDes, und schicken Sie dann die Dateien auf dem PC mit dem Befehl hft files.... Transfers in die umgekehrte Richtung können mit HFT Send durchgeführt werden. Starten Sie hierzu zunächst auf dem PC den Empfangsmodus mit dem Befehl hft -recv, wählen Sie dann die gewünschte Datei in Flash XP aus und aktivieren Sie HFT Send

Load File ist eine wesentlich weniger komfortable Funktion zur Roh-Datenübertragung. Nach der Aktivierung dieser Option werden Sie zunächst nach einem Dateinamen für eine neue Datei auf dem Flash-Speicher gefragt. Diese wird dann angelegt und mit den Daten gefüllt, die ab sofort über den JTAG-Port vom PC kommen (zur Roh-Datenübertragung können Sie jtagsend verwenden). 

Der Viewer

Screenshot des Viewers

Mit dem integrierten Viewer von Flash XP können Dateien sowohl in der Textansicht (View Text; nur für Textdateien geeignet) oder in der Binäransicht (View Hex) betrachtet werden. Andere Formate (wie Bilder oder Klänge) werden allerdings nicht unterstützt. In beiden Ansichten kann mit den Cursortasten [↑] und [↓] oder durch Klick auf Up/Down gescrollt werden. Dabei wird jeweils seitenweise weitergeschaltet.

Fortgeschrittene Befehle (Advanced-Menü)

SystemIDs

Im Advanced-Menü können Systemverwaltungs-Operationen durchgeführt werden. Dies sind erstens Funktionen zum Anzeigen (Get SysID) und Setzen (Set SysID) der global eindeutigen SystemID, die das HaDes-System im Netzwerk identifiziert. Die SystemID kann nur nur gesetzt werden, nachdem der Flash reformatiert wird und dabei die alte SystemID gelöscht wird. Sie wird als zwei-ziffriger Hexadezimalwert angegeben. Folgende SystemIDs sind bereits vergeben: 

System IDs (hex)
Florians echte HaDes FD
Markus' echte HaDes
Florians Emulator F0-F7
Markus' Emulator

ReformatierenDialogbox zur Bestätigung des Reformatier-Vorgangs

Eine weitere wichtige Option betrifft das Reformatieren des Flash-Speichers. Diese Operation schreibt das komplette Flashdateisystem neu und lässt dabei alle gelöschten Dateien aus, der Effekt ist: durch gelöschte Dateien verschwendeter Speicher wird wieder freigegeben. Um dies zu verstehen, muss man wissen, dass Dateien bei der Löschung oder beim Überschreiben nicht wirklich entfernt, sondern nur als gelöscht markiert werden. Der Grund hierfür ist historisch: Bei reinem Flash-Speicher (wie ihn die XFlash bereitstellte) können Bits nur in eine Richtung (von der logischen 0 zur logischen 1) frei beschrieben (programmiert) werden können. Die umgekehrte Richtung (löschen) ist weitaus aufwändiger und kann nur sektorweise, d.h. in 32 KB Blöcken durchgeführt werden.

Da der Microcontroller auf einer MMC-Karte diese Blockorganisation übernimmt und Daten bereits in 512-Byte Blöcken annimmt, und die XMMC die Verwaltung der 512-Byte Blöcke übernimmt, ist es mit der XMMC nun möglich, den Flashspeicher byteweise nach Lust und Laune zu programmieren oder zu löschen. Eigentlich könnten die Dateien im HFFS also auch direkt überschrieben werden. Aber wir wollten ja nicht gleich unser schönes Dateisystem über den Haufen werden... 

Daher wird die Reformatierungs-Operation auch weiterhin benötigt: Die MMC-Karte wird Sektor für Sektor zunächst in den Hauptspeicher ausgelesen, dann gelöscht, und schließlich wieder mit den beizubehaltenden Dateien gefüllt. 

Bis auf das Risiko eines Stromausfalls gehen also beim Reformatieren nur Daten verloren, die man ohnehin nicht mehr benötigt hat. Sobald sich also etwas verschwendeter Speicher angesammelt hat, empfiehlt es sich daher, einfach mal die Format-Taste zu betätigen.

Implementierung

Desktop-Ansicht

Neben der hübschen Darstellung der vorhandenen Programme war die Hauptaufgabe bei der Implementierung des Desktops, ein anderes Programm zu laden und auszuführen, ohne die HaDes komplett zurückzusetzen. (Zuvor konnte nur durch einen Reboot und die Auswahl des Programms im Bootloader ein anderes Programm gestartet werden.)
Da alle HaDes-Programme ab Adresse 0 in den Speicher geladen werden müssen, aber der Desktop möglichst lange dort verbleiben soll, damit bei einem Ladefehler sauber abgebrochen werden kann, wird das Programm wie folgt geladen:
  • Das zu ladende Programm wird zunächst in den Hauptspeicher kopiert und auf Korrektheit geprüft (Checksumme der HIX-Datei).
  • Eine spezielle Kopierroutine, die in Assembler implementiert ist, wird ans obere Ende des für Programme verwendbaren Speichers geladen (kurz vor die 16-bit Grenze). Durch den Befehl "start" wird der Instruction Cache invalidiert. 
  • Soweit wie möglich, wird der Zustand des Prozessors nach einem Reset wiederhergestellt, alle Interrupts und Spezialregister werden gelöscht.
  • Es wird in die Kopierroutine gesprungen. Diese kopiert das zu ladende Programm an den Anfang des Programmspeichers. Durch den Befehl "start" wird der Instruction Cache invalidiert und das geladene Programm gestartet.
 
rrobek.de Hauptseite
 
Valid HTML 4.01!