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