4 Grundlagen zu ContikiOS
Dieses Kapitel dient der Vermittlung der Grundlagen zu ContikiOS. Ziel ist es, die Einar-
beitungszeit für die Erstellung eigener Anwendungen durch den Leser zu verkürzen und
die Basis für das Verständnis der Portierung auf neue Hardware-Plattformen zu schaffen.
Als Unterstützung hierzu bietet sich die Durchsicht des Kapitels 2 der Bachelorthesis von
Herrn Bernhard Esders [
3
] an, in dem einige Grundlagen zu dem Contiki-Betriebssystem
selber und zu der Programmierung von Contiki-Anwendungen aufbereitet wurden.
4.1 Multi-Threading und Protothreads
Neben der optionalen Möglichkeit des präemtiven Multithreadings bietet ContikiOS über
die Nutzung von so genannten Protothreads einen leichtgewichtigen Mechanismus für
die Realisierung einer quasiparallelen Programm-, beziehungsweise Prozessausführung.
Im Gegensatz zu “normalen” Threads besitzen Protothreads keinen eigenen Stapelspei-
cher (Stack) und sind somit in der Lage, blockierende Kontexte mit äußerst geringem
Speicherbedarf abzubilden. Dieses schnelle und speichereffiziente Verfahren ist gerade für
die Umsetzung von eingebetteten Systemen interessant, hat jedoch den Nachteil, dass
die Inhalte von lokalen Variablen unter Umständen bei einem Kontextwechsel verloren
gehen. Sollen die Variableninhalte über einen Kontextwechsel erhalten bleiben, ist deshalb
entweder eine globale Deklaration der Variablen oder eine Definition als statisch (static)
erforferlich. [3, 21]
4.2 Events und Interprozesskommunikation
Die Interprozesskommunikation wird innerhalb des Mikrocontroller-Betriebssystems
Contiki über das Senden und Empfangen von Events realisiert. Die Übergabe der Events
geschieht hierbei bei dem Kontextwechsel von dem auslösenden Prozess hin zu dem auf
das Event wartenden Prozess. [3]
4.3 Verzeichnisstruktur
Die Verzeichnisstruktur des Mikroprozessor-Betriebssystems ContikiOS wurde so aufge-
baut, dass eine klare Trennung zwischen den implementierten Anwendungen, den Treibern,
22
Comentários a estes Manuais