21.01.2013 Aufrufe

Paper for Download - FKFS

Paper for Download - FKFS

Paper for Download - FKFS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3.1.1 Kapselung des MHP-Quellcodes<br />

Um die mehrfache Instanziierung des MHP-Stacks innerhalb der Netzwerksimulation zu<br />

gewährleisten wurde der vorliegende C-Quellcode in der so genannten MHP-Klasse gekapselt.<br />

Diese bildet das zentrale Element für die virtuellen Geräte. Um die MHP-Klasse<br />

mit Statusdaten und verschiedenen Funktionalitäten wie z.B. Zeitgebern versorgen zu<br />

können wurde die Klasse mit verschiedenen Softwareschnittstellen ausgestattet. Diese<br />

werden bei der Gerätemodellierung näher beschrieben.<br />

Die zentralen An<strong>for</strong>derungen an die Kapselung waren zum einen die Einbettung in den<br />

existierenden Entwicklungsfluss und eine minimale Modifikation der Software um das<br />

Ziel der Mehrfachinstanziierung zu erfüllen. Damit kann sichergestellt werden, dass neue<br />

Versionen schnell für die Durchführung von Regressionstest in das Modell eingebunden<br />

werden können. Abgesehen von Array Definitionen konnten alle Änderungen innerhalb<br />

des Codes in zwei zusammenhängenden Blöcken mittels Makros vorgenommen werden.<br />

Ein Block steht zu Beginn des instrumentierten Codes und beinhaltet zusätzlich die Klassendeklaration<br />

sowie zusätzliche Funktionen und Variablen. Der zweite Block steht am<br />

Ende des Codes und beendet die Klassendeklaration und beseitigt die Makros, welche<br />

zur Instrumentierung verwendet wurden. Zur Einbettung in den Entwicklungsfluss wurden<br />

alle Erweiterungen bzw. Änderungen markiert. Damit ist es möglich den Code für die<br />

Einbettung innerhalb der virtuellen Geräte automatisch zu erzeugen.<br />

3.1.2 Gerätemodellierung<br />

Für die Netzwerksimulation ist es nicht ausreichend, den gegebenen C-Code zu kapseln.<br />

Die MHP-Klasse muss mit Statusdaten und Zeitfunktionalitäten versorgt werden.<br />

Zudem müssen Anwendungen integriert werden können, damit spezifische Verifikationsund<br />

Evaluierungszenarien ausgeführt werden können. Für die Bereitstellung der Statusfunktionalitäten<br />

ist die sogenannte Status-Klasse verantwortlich. Die Timer-Klasse stellt<br />

Zeitfunktionalitäten für das Gerät zur Verfügung. Sie verwaltet Zeitgeber, die durch andere<br />

Klassen parametrisiert, gestartet und gestoppt werden können. Sobald einer der Zeitgeber<br />

überläuft wird eine zuvor definierte Funktion aufgerufen, ähnlich einem Interrupt-<br />

Zeitgeber für Mikroprozessoren.<br />

Mit den im Gerät enthaltenen Klassen Transmit und NetInterface wird die Verbindung<br />

zwischen dem ” External Host Controller (EHC)“ und dem ” Intelligent Network Interface<br />

Controller (INIC)“ simuliert. Weiterhin enthält die NetInterface-Klasse eine abstrakte<br />

Puffermodellierung entsprechend dem INIC-Chip. Diese Erweiterung verbessert die<br />

Abstraktion bezüglich des Zeitverhaltens gegenüber realen Systemen. Für die Kommunikation<br />

mit weiteren Geräten schließt die Geräteklasse einen TLM-2.0 Kanal mit ein.<br />

TLM ist ein High-Level-Ansatz für die abstrakte Kommunikationsmodellbildung zwischen<br />

Modulen.<br />

Um Regressionstests und Integrationstests mit unterschiedlichen MHP-Versionen oder<br />

Applikationen durchführen zu können müssen bestimmte Module des MHP-Gerätes austauschbar<br />

bleiben. Dazu werden die Applikations-, Callback, MHP- und die NetInterface-<br />

Klasse von einer Standardklasse für die jeweiligen Module abgeleitet. Mithilfe der Platt<strong>for</strong>mkonfiguration<br />

können dann verschiedene Versionen aus einer bestehenden Bibliothek<br />

dem Gerät zugeordnet werden (siehe Abbildung 1).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!