Abschlussbericht
Abschlussbericht
Abschlussbericht
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