NodeOperatingSystem aktualisiert
@@ -9,10 +9,13 @@ Der Anwender ist frei in der Wahl des Betriebssystem für die Jede Mikrocontroll
|
||||
|
||||
AqHome liefert für meine eigenen Nodes ein einfaches Betriebssystem mit, das diese Aufgaben erfüllt und leicht erweiterbar ist. Dabei benötigt es nur vergleichsweise wenig FLASH und selbst kaum RAM.
|
||||
|
||||
Das System unterscheidet zwischen Modulen (Treiber) und Anwendungen, wobei jeweils mehrere aktiv sein koennen.
|
||||
# AqHome-Betriebssystem
|
||||
|
||||
Module sind lowlevel-Code und in erster Linie Treiber für Hardware-Geräte (z.B. den Umweltsensor SI7021) oder für Protokolle.
|
||||
Anwendungen hingegen liegen auf höherer Ebene und verwenden z.B. die Module. Beispielsweise gibt es Anwendungen für den Netzwerk-Stack, für Bewegungsmelder-aktiviertes Licht, zum Berichten von Statistiken und von Sensordaten.
|
||||
Das System unterscheidet zwischen Modulen und Anwendungen, wobei jeweils mehrere aktiv sein koennen.
|
||||
|
||||
**Module** sind lowlevel-Code und in erster Linie Treiber für Hardware-Geräte (z.B. den Umweltsensor SI7021) oder für Protokolle. Sie enthalten z.B. auch Interrupt-Handler.
|
||||
|
||||
**Anwendungen** hingegen liegen auf höherer Ebene und verwenden Module, um deren Funktionalität z.B. zu kombinieren oder aufzuwerten. Beispielsweise gibt es Anwendungen für den Netzwerk-Stack, für Bewegungsmelder-aktiviertes Licht, zum Berichten von Statistiken und von Sensordaten.
|
||||
|
||||
Zur Kommunikation mit Modulen und Anwendungen kennt das Betriebssystem verschiedene Funktionen:
|
||||
|
||||
@@ -30,5 +33,9 @@ Die Aufrufe dieser Funktionen liegen für Module in den Dateien _avr/devices/all
|
||||
|
||||
Viele Treiber implementieren nicht alle Funktionen, daher findet sich nicht in jeder entsprechenden Datei ein solcher Aufruf.
|
||||
|
||||
Um die Verwendung durch die verschiedenen Platinen zu vereinfachen, werden die Aufrufe in den _modules_xxx.asm_ und _apps_xxx.asm_ Dateien immer durch Präprozessor-Direktiven eingeschlossen, z.B.:
|
||||
|
||||
|
||||
`#ifdef MODULES_SI7021
|
||||
bigcall
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user