14.01.2015 Aufrufe

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4 Basisschicht e<strong>in</strong>es Verwalters<br />

Abbildung 4.18: Klassendiagramm des Kommunikationssystems<br />

In dem vere<strong>in</strong>fachten Klassendiagramm erkennt man die Dreiteilung <strong>in</strong> DeviceStub, CommSys und DeviceL<strong>in</strong>k.<br />

DeviceStub stellt die Schnittstelle für die anderen Komponenten zur Verfügung. Neben der allgeme<strong>in</strong>en Version<br />

gibt es noch e<strong>in</strong>e erweiterte Schnittstelle (DeviceStubPaged), welche seitenbasierte Zugriffe auf den Speicher<br />

anbietet, um Zugriffe auf Mikrocontroller mit Flashspeicher zu optimieren. Zur Übertragung wird e<strong>in</strong> CommSys-Objekt<br />

verwendet, welches hauptsächlich das Übertragungsprotokoll abwickelt und zur Kommunikation auf e<strong>in</strong> DeviceL<strong>in</strong>k-<br />

Objekt zurückgreift. Die Byteordnung von Adressen, die während der Kommunikation ausgetauscht werden, passt e<strong>in</strong><br />

CommHelper-Objekt an.<br />

Speichers (Dual-Ported-RAM) unterstützen, <strong>in</strong>dem die Speicherzugriffe direkt umgesetzt werden oder<br />

man entsprechende Kommandos erzeugt und über e<strong>in</strong>e festgelegte Speicherstelle austauscht.<br />

Das Gegenstück zum DeviceStub des Verwalters ist das Fernwartungsmodul (Remote Configuration<br />

Module, RCM) auf dem verwalteten Gerät. Das RCM muss immer auf dem Knoten <strong>in</strong>stalliert<br />

se<strong>in</strong> und ist normalerweise Teil des <strong>in</strong>itialen Moduls. Es stellt den Kommunikationsendpunkt dar und<br />

empfängt und verarbeitet die Anfragen des Verwalters. Dazu implementiert es ebenfalls das oben<br />

beschriebene Kommunikationsprotokoll. Zum Zugriff auf das Kommunikationsmedium und zur Ausführung<br />

der Befehle ist das RCM <strong>in</strong> das Laufzeitsystem <strong>in</strong>tegriert. Der Aufbau des RCMs ist daher<br />

vom verwendeten Laufzeitsystem abhängig und wird <strong>in</strong> Abschnitt 4.5.7 diskutiert.<br />

4.5.6.2 Befehle an e<strong>in</strong>en verwalteten Knoten<br />

Die Befehle, die e<strong>in</strong> RCM bearbeiten muss, s<strong>in</strong>d sehr e<strong>in</strong>fach gehalten. Zu den grundlegenden Operationen<br />

gehört das Auslesen (peek) und Beschreiben (poke) von Speicherstellen sowie das Fortsetzen<br />

der Ausführung auf dem Knoten nach e<strong>in</strong>er Unterstützungsanforderung (resume). Daneben können<br />

noch geräte- oder laufzeitsystemspezifische Befehle angeboten werden, die oft zur Optimierung der<br />

Vorgänge dienen.<br />

Mithilfe der peek- und poke-Operationen kann der Verwalter den Zustand des Knotens auslesen<br />

und Daten <strong>in</strong>stallieren. Um den Zustand des Knotens vollständig erfassen zu können, benötigt der<br />

Verwalter zum Teil auch den Inhalt e<strong>in</strong>iger Register. Auf e<strong>in</strong>igen Architekturen, wie beispielsweise<br />

den AVR-Mikrocontrollern, s<strong>in</strong>d alle Register <strong>in</strong> den Speicher e<strong>in</strong>geblendet und können somit über<br />

die peek-Operation abgefragt werden. Bei anderen Architekturen ist e<strong>in</strong>e zusätzliche Operation dafür<br />

notwendig 11 .<br />

Bei Harvard-Architekturen muss die Möglichkeit bestehen, auf die verschiedenen Adressräume<br />

zuzugreifen. Hierzu kann man den Adressraum <strong>in</strong> der Adresse codieren 12 oder man sieht getrennte<br />

11 Bei x86- und H8/300-Architekturen ist beispielsweise e<strong>in</strong>e zusätzliche Operation GetBasePo<strong>in</strong>ter realisiert, die den<br />

Inhalt des Registers EBP beziehungsweise r6 zurückliefert.<br />

12 Zur Codierung des Adressraumtyps kann man Bits verwenden, welche außerhalb des gültigen Adressbereichs liegen. E<strong>in</strong><br />

gesetztes Bit bedeutet beispielsweise, dass es sich um e<strong>in</strong>e Adresse im Programmspeicher handelt.<br />

82

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!