Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:snmp_zigbit

Contiki SNMP auf dem AVR Zigbit Modul

Um Contiki SNMP auf dem Zigbit Modul verwenden zu können, sind einige Anpassungen nötig.
Natürlich müssen zuvor die Anpassungen in SNMP auf Contiki 2.5 Installation durchgeführt worden sein.
Weil die Konstanten des AES Algorithmus und die BER kodierten OIDs um Speicherplatz zu sparen vom Daten Speicher in den Programmspeicher verschoben werden sollen, kommen innerhalb des Quellcodes AVR-GCC spezifische Funktionen zum Einsatz. Diese können natürlich nur verwendet werden, wenn auch ein AVR Microcontroller verwendet wird. Aus diesem Grund ist im Quellcode immer dann, wenn AVR spezifische Programm Speicher Funktionen verwendet werden, die Präprozessor Direktive

#if CONTIKI_TARGET_AVR_RAVEN

zu finden. Da aber bei der Kompilierung für das Zigibt Modul diese Bedingung nicht wahr ist, wird anstatt dem Programmspeicher der Datenspeicher verwendet. Dadurch erhält man eine Auslastung des Datenspeichers von 99,3%. Dies ist selbstverständlich nicht wünschenswert. Deshalb müssen die Präprozessor Direktiven angepasst werden. Dazu genügt es, die oben genannte Direktive durch

#if CONTIKI_TARGET_AVR_RAVEN || CONTIKI_TARGET_AVR_ZIGBIT

zu ersetzen. Dies ist in den Dateien utils.c, aes_cfb.c und mib.c notwendig.
Außerdem werden in der Datei snmpd.c weitere Präprozessor Direktiven verwendet. Hier muss

#if DEBUG &&- CONTIKI_TARGET_AVR_RAVEN

durch

#if DEBUG && (CONTIKI_TARGET_AVR_RAVEN || CONTIKI_TARGET_AVR_ZIGBIT)

ersetzt werden. Um Zeile 197 innerhalb des snmpd process für das Zigbit Modul kompilierbar zu machen, muss

#ifndef CONTIKI_TARGET_AVR_RAVEN

durch

#if !(CONTIKI_TARGET_AVR_RAVEN || CONTIKI_TARGET_AVR_ZIGBIT)

ersetzt werden, da ifndef den Ausdruck nicht auswertet und somit bei mehreren Bedingungen nicht verwendet werden kann muss die if ! Anweisung verwendet werden.

Durch diese Änderungen kann die Nutzung des Datenspeichers auf 44% reduziert werden.

Um die serielle Schnittstelle zu Nutzen, muss diese unter Contiki noch eingerichtet werden. Dazu muss die Datei contiki-avr-zigbit-main.c im Contiki Verzeichnis \platform\avr-zigbit\ editiert werden. In Zeile 98 kann die serielle Schnittstelle konfiguriert werden. Die hier eingetragenen Parameter müssen danach beim verwendeten Terminalprogramm natürlich übereinstimmen. Empfohlen werden laut der Contiki Developers Mailing List die folgenden Einstellungen.

  rs232_init(RS232_PORT_1, USART_BAUD_57600,
        USART_PARITY_NONE | USART_STOP_BITS_1 | USART_DATA_BITS_8);

Um im Anschluß den neuen Quellcode für das AVR Zigbit Modul zu kompilieren, muss das Makefile angepasst werden, dieser Vorgang ist in Erstellung einer eigenen MIB für den Contiki 2.5 SNMP Agent im Abschnitt Kompilierung mit neuer MIB allgemein beschrieben. Damit das AVR Zigbit Modul genutzt werden kann muss das Kompilierungsziel

TARGET=avr-raven

durch

TARGET=avr-zigbit

ersetzt werden.

contiki/snmp_zigbit.txt · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)