13.01.2015 Aufrufe

Abschlussbericht

Abschlussbericht

Abschlussbericht

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.

<strong>Abschlussbericht</strong><br />

Trusted Sensor Node<br />

tion ”Enable gpio support” im Konfigurationswerkzeug aktiviert werden. Der Treiber bietet<br />

Funktionen zum Konfigurieren der GPIOs, zum Auslesen und des Setzen des Levels und<br />

zum Aktiviere sowie Deaktivieren eines Interrupts an.<br />

Mittels der Funktion hal_gpio_set_direc() kann die Richtung des GPIOs festgelegt<br />

werden. Ein GPIO kann als Ausgang oder als Eingang genutzt werden. Ist der GPIO als<br />

Eingang definiert, kann mittels der Funktion hal_gpio_get() das aktuelle Level des Pins<br />

erfragt werden. Das Setzen des Levels erfolgt mittels hal_gpio_set(). Das Auslesen<br />

und Setzen des GPIO-Levels ist jederzeit möglich.<br />

Der LEON2 Prozessor unterstützt bis zu vier Interrupt-Vektoren für seine 16 GPIO-Pins.<br />

Für das Konfigurieren des Interrupt-Handlers wird Funktion hal_gpio_cfg_irq() bereitgestellt.<br />

Die Funktion wählt einen freien Interrupt-Vektor aus und registiert die übergebene<br />

callback-Funktion. Sind bereits alle Interrupt-Vektoren belegt, wird ein Fehler zurückgegeben.<br />

Beim Konfigurieren des Interrupts kann zusätzlich festgelegt werden, ob der<br />

Interrupt bei einem Flankenwechsel (edge-triggered) oder bei einem bestimmten Level<br />

(level-triggered) auslösen soll. Über einen weiteren Parameter wird das Level festgelegt.<br />

Bei einem edge-triggered Interrupt legt das Level fest, ob dieser bei einer fallenden (lowlevel)<br />

oder steigenden Flanke (high-level) ausgelösen soll.<br />

Das Aktivieren des Interrupts erfolgt mittels der Funktion hal_gpio_enable_gpio().<br />

Nach der Ausführung dieser Funktion, wird der Interrupt-Hander aufgerufen, wenn ein der<br />

Konfiguration entsprechender Interrupt aufgetreten ist. Das Deaktivieren des Interrupt erfolgt<br />

mittels der Funktion hal_gpio_disable_gpio(). Zum Reaktivieren des Interrupts<br />

muss dieser nicht erneut konfiguriert werden. Stattdessen ist es ausreichend, wenn die<br />

Funktion hal_gpio_enable_gpio() aufgerufen wird.<br />

4.2 Services<br />

Neben den im Abschnitt 4.1 eingeführten Treibern, wurde eCos um zwei zusätzliche Services<br />

erweitert. Die Services können von beliebigen eCos Applikationen verwendet werden.<br />

Hierzu gehört das CryptAPI, über welches die Hardware-beschleunigten kryptografischen<br />

Funktionen des LEON2-Prozessor angeboten werden, und das SensorAPI, welches<br />

eine einheitliche Schnittstelle für die Sensorik des TSN bietet.<br />

Die beiden Services können über die Packages CryptAPI und SensorAPI ausgewählt werden.<br />

Da sie von Hardwarefunktionen des TSN abhängig sind, sind sie an die LEON2-<br />

Hardware gebunden. In der Konfiguration des TSN tsn.ecc sind beide Packages aktiviert.<br />

4.2.1 CryptAPI<br />

Das CryptAPI stellt eine einheitliche Schnittstelle auf die kryptografischen Module des LE-<br />

ON2-Prozessors bereit. Die Implementierung ist jedoch nicht auf die Hardware-Funktionen<br />

62

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!