13.01.2015 Aufrufe

Abschlussbericht

Abschlussbericht

Abschlussbericht

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.

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

Trusted Sensor Node<br />

Um das neue Paket letztendlich in der eCos-DB zu registrieren, muss es in die Datei<br />

ecos.db eingetragen werden. Listing 3.3 zeigt dies für das in Listing 3.2 eingeführte Beispiel.<br />

package CYGPKG_IO_SERIAL_SPARC_LEON {<br />

alias<br />

{"SPARC Leon2 serial device drivers"<br />

devs_serial_sparc_leon leon_serial_driver }<br />

hardware<br />

directory<br />

devs/serial/sparc/leon<br />

script<br />

ser_sparc_leon.cdl<br />

description "SPARC Leon2 serial device drivers"<br />

}<br />

Listing 3.3: Package–Registration<br />

Hardware-Treiber, wie in unserem Beispiel, müssen einem target zugewiesen werden.<br />

Hierfür muss der Paketname beim zugehörigen Target in die package-Liste aufgenommen<br />

werden. Das Aktivieren des Paketes erfolgt dann zusammen mit der Auswahl der<br />

Zielplattform.<br />

Treiber API<br />

eCos bietet für Treiber ein einheitliches API, so dass die Nutzung von verschiedenen Treibern<br />

analog erfolgt. Jeder Treiber bietet die folgenden Funktionen an:<br />

cyg_io_lookup() Diese Funktion empfängt einen Treibernamen, sucht den Namen in der<br />

Systemtreibertabelle und liefert der Anwendung eine Referenz (Handle) auf den Treiber<br />

zurück. Diese Referenz wird von den nachfolgend beschriebenen Methoden benötigt.<br />

cyg_io_get_config(), cyg_io_set_config() Die API-Aufrufe ermöglichen das Lesen und<br />

Schreiben von Konfigurationsdaten des Gerätetreibers.<br />

cyg_io_read(), cyg_io_write() Diese API-Aufrufe dienen dazu, Daten vom Treiber zu lesen<br />

bzw. an diesen zu übergeben.<br />

Beim Hinzufügen eines neuen Treibers, ob als Package oder in der Applikation, müssen<br />

diese Funktionen implementiert werden. Darüber hinaus muss der Gerätetreiber außerdem<br />

die folgenden Elemente definieren:<br />

• eine DEVTAB_ENTRY-Struktur und<br />

• eine DEVIO_TABLE-Struktur.<br />

Die DEVTAB_ENTRY-Struktur definiert den Namen und die Einsprungpunkte für die Initialisierungsroutinen<br />

des Treibers. Listing 3.4 zeigt die Definition für einen seriellen Gerätetreiber,<br />

der anschließend mittels cyg_io_lookup(¨/dev/ser0¨) angesprochen werden<br />

kann.<br />

50

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!