Einführung The Real-Time Event Flow EXecutive Karsten Walther, und Jörg Nolte Brandenburgische Technische Universität Cottbus 1. Statusseminar des InnoProfile Projekt TANDEM 2007
Gliederung Einführung 1 Einführung Betriebssysteme im eingebetteten Bereich 2 Eigenschaften Energiemanagement
Einführung Allgemeine Anforderungen Betriebssysteme im eingebetteten Bereich Hardware Arbeitsspeicher >= 1KB ROM 4-64KB wenige MHz (ca. 16 MHz) Taktrate keine MMU vorhanden Software leichte Benutzbarkeit auf mehrere Plattformen portierbar echtzeitfähig effiziente Nutzung von Speicher allgemein Verwendbar institution-logo
Einführung Allgemeine Anforderungen Betriebssysteme im eingebetteten Bereich Hardware Arbeitsspeicher >= 1KB ROM 4-64KB wenige MHz (ca. 16 MHz) Taktrate keine MMU vorhanden Software leichte Benutzbarkeit auf mehrere Plattformen portierbar echtzeitfähig effiziente Nutzung von Speicher allgemein Verwendbar institution-logo
Einführung Warum ein Ereignisfluss-Modell Betriebssysteme im eingebetteten Bereich Pure interrupt driven CPU Usage Pure polling Offered Interrupt Load Abbildung: System Auslastung mit/ohne Ereignisfluss-Modell institution-logo
Einführung Vorhandene Lösungen (1) Betriebssysteme im eingebetteten Bereich Chimera und Chimera II OS Modularisierung > Wiederverwendbarkeit (Port-Based Objects) System führt Task s aus (Thread basiert) nicht Ereignis getrieben Abbildung: Ereignisfluss
Einführung Vorhandene Lösungen (2) Betriebssysteme im eingebetteten Bereich Boldstroke Modell TinyOS (max Wiederverwendbarkeit) Zuverlässig durch Analysierbarkeit Ereignis getrieben, echtzeitfähig unabhängige Scheduling-Schemata ORB, dadurch schwergewichtig leichtgewichtige Implementierung komplettes Rahmenwerk eigene Komponenten basierende Sprache (nesc) nur Cross-C-Kompiler benötigt Ereignis getrieben
Einführung Eigenschaften von Eigenschaften Energiemanagement - Real-Time Event FLow EXecutive echtzeitfähig Ereignis getrieben unabhängig vom Scheduling-Schema (FIFO, Priority, EDF) einziger Stack mit unterbrechbaren Task s synchronisierte Kanäle (u.a. mit Puffer-Semantik) implizit nativer Objektorientierter Ansatz, kompatibel zum C++-Standard integriertes Energie-Management
Die Architektur Einführung Eigenschaften Energiemanagement Application layer Controlfunction Controlfunction Controlfunction Driver layer Driver Driver Interrupthandler Interrupthandler Hardware layer Sensor Actuator Actuator Sensor Hardware event Software event Interrupt handler Activity Component Abbildung: Das Ereignisfluss Modell von
Der Stand von Einführung Eigenschaften Energiemanagement portiert auf MSP430, Atmega128, H8300, HCS12, MIPS32, guest (linux, cygwin, darwin, OmnetPP) Benutzung in komplexen Anwendungen Haussteuerung, Datenlogger Dient als Basis für COCOS (COordinated COmmunicating Sensors)
Energiemanagement Einführung Eigenschaften Energiemanagement lokaler Ansatz Treiber schalten Komponenten bei nicht Gebrauch aus globaler Ansatz Scheduler signalisiert IDLE Status zum Powermanager 4 Stufen Schema wait IDLE, keinen Strom sparen dream Aufwachen bei ausgewählten Ereignissen sleep Aufwachen nur bei RTC-Signal stop Aufwachen durch Reset oder Externen Interrupt
Beispiel Ablauf Einführung Eigenschaften Energiemanagement 1 Applikation äußert Bereitschaft zum Strom sparen (dream, sleep, stop) 2 Alle Interrupts ausschalten, ausgenommen: wake-up Interrupts Sekundäre Interrupts 3 Task s abarbeiten, danach Strom abschalten 4 sleep 5 Aufwachen, zu einem gültigen Status
Einführung Ereignis getriebene Modelle verbessern die Energieeffizienz von Applikationen. unterstützt den Anwender in punkto Energieeffizienz und Analysierbarkeit. Ausblick dynamische Reprogrammierung IDE für Online Monitoring / Debugging Erweiterungen im Build-System
Einfu hrung Haussteuerung Fragen? So ren Ho ckner institution-logo
Einfu hrung Haussteuerung Fragen? So ren Ho ckner institution-logo
Weiterführende Literatur Anhang Shared Stack vs Threads Unterbrechbarkeit mit einem Stack Haussteuerung-Schema Karsten Walther and Jörg Nolte : A Real-Time Operating System for Deeply Embedded Systems.. David. B. Steward and K.L. Khosla The Chimera Methodology: Designing Dynamically Reconfigurable Real-Time Software Proceedings of 1st Workshop on Object-Oriented Real-Time Dependable Systems.
Shared Stack vs Threads Anhang Shared Stack vs Threads Unterbrechbarkeit mit einem Stack Haussteuerung-Schema Low Address Data Data Stack Thread 1 Stack Thread 2 Stack Thread 3 Stack Space for Interrupthandling High Address Shared Stack for Activities RAM Abbildung: Shared Stack versus Threads institution-logo
Anhang Unterbrechbarkeit mit einen Stack Shared Stack vs Threads Unterbrechbarkeit mit einem Stack Haussteuerung-Schema Frame for Task 5 Schedule Frame Frame for Task 4 Schedule Frame Frame for Task 1 Schedule Frame Frame for Task 0 Schedule Frame Task 5 running Task 4 Interrupted Task 3 Ready Task 2 Ready Task 1 Task 0 Interrupted Interrupted Stack ReadyList Abbildung: preemptives Stacklayout
Haussteuerung Anhang Shared Stack vs Threads Unterbrechbarkeit mit einem Stack Haussteuerung-Schema ADConverter ModulusCounter PortK PortH I2CController Logical Clock DCF77-Clock Digital Inputs Hardware Independet Component RawValue- Converter ADC Control Watchdog Hardware Dependet Component Heating- Control Solar Heating Control Solar Panel Tracking Light- Control Alarmsystem Event Channel Poweroutputs OutputChannel Digital Outputs Event Buffer PortA PortB Serial Interface Abbildung: Schema Haussteuerung