
5 Portierung von ContikiOS 2.4
5.2.1 Die Registermap
Die Registermap ist eine Datei, über die den intern von Contiki genutzten symboli-
schen Bezeichnungen der Register und Subregister des Mikrocontrollers entweder AVR-
Registerbezeichnungen oder direkt die entsprechenden physikalische Adressen zugeordnet
werden. Zudem werden innerhalb der Registermap einige Konstanten definiert, welche
die Steuerung der Transceiver-Funktionen über die Register vereinfachen. Da sich gerade
der Zugriff auf die Register der Transceiver-Einheit des Controllers ATmega128RFA1
von der Steuerung der zuvor verwendeten Transceivern unterscheidet, ist es notwendig,
die Registermap zu kopieren, sie umzubenennen und die Zuordnung der innerhalb von
Contiki genutzten Registern zu ändern. Folgendes Listing 5.1 verdeutlicht den Aufbau
der Registermap am Beispiel des Registers TRX_STATE.
1 /* assign register */
2 # define R G _TX_STATE TRX_STATE
3
4 /* assign s ubregiste r */
5 /* -> address , bitmask , position */
6 # define S R _ TRX_CMD 0 x142 , 0 x1f , 0
7
8 /* assign value */
9 # define S TATE _ TRAN S ITION (31)
Listing 5.1: Auszug aus der Registermap
5.2.2 Der Kommunikationstreiber
Der innerhalb des Verzeichnisses cpu/avr/radio/rf230bb a/jointfilesconvert/442035/bgelegte Kommunikationstreiber
besteht neben den Registermaps und dem Makefile aus zwei Quellcode- und zwei zuge-
hörigen Header-Dateien. Da die Untersuchung der Kommunikationsmechanismen des
Contiki-Betriebssystems naturgemäß in engem Zusammenhang mit diesen Treiberdateien
steht, werden innerhalb der folgenden Abschnitte auf diese Dateien eingegangen, obwohl
für die Portierung von Contiki auf den ATmega128RFA1 teilweise keine Änderungen
notwendig sind.
hal.h
Die Datei hal.h enthält neben einigen Definitionen, die hauptsächlich für die Nutzung
externer Transceiver-Einheiten über die SPI-Schnittstelle benötigt werden, verschiedene
Prototypen und Makros für den Zugriff auf die Transceiver-Register. Da die Transceiver-
Einheit des ATmega128RFA1 direkt über die dazughörigen Register gesteuert wird, kann
auf die Änderung der Definitionen für den Zugriff auf die Transceiver-Einheit über die
SPI-Schnittstelle verzichtet werden. Allerdings ist es erforderlich, die genutzte Hardware
32
Kommentare zu diesen Handbüchern