Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Maja Falk Geändert vor über 6 Jahren
1
Modellbasierte Software-Entwicklung eingebetteter Systeme
Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik
2
Systematik der Modellerstellung
Für jedes Bedienelement (Schalter, Knopf, Sensor) die verschiedenen Positionen als Zustand und die Benutzereingaben als Ereignis Für jedes Ausgabeelement die verschiedenen physikalischen Zustände modellieren Steuerung zur Verbindung der Ein- und Ausgaben Parallelschaltung dieser Automaten ergibt Modell der Steuerung Umgebungsmodell zur Modellierung der physikalischen Realität (z.B. Sensorereignis falls Motor am Anschlag) Parallelschaltung dieser Automaten ergibt Systemmodell
3
Heute: Codegenerierung
Codegenerierung aus State Machines Codegenerierung aus Simulink Codegenerator ist „Compiler für Modelle“ Wiederverwendung schnelle Prototyp- und Produkterstellung erhöhte Zuverlässigkeit gegen Programmierfehler automatische Optimierung des generierten Codes Ziel: automatische Übersetzung von Modellen in ausführbaren (C-) Code
4
Codegenerierung aus State Machines
Übersetzung eines endlichen Automaten nach C? loop case/switch Adjazenzmatrix
5
State Machine Besonderheiten
Hierarchie geschachtelte Zustände Parallelität Zustandsraumvektor Kommunikation Event-Queue Nichtdeterminismus i.A. verboten
6
Beispiel: Visual State Coder
7
Codeoptimierung Hauptkriterium: Größe des generierten Codes!
Variablenbreite (int8 statt int32, state_type, ...) Prozessorspezifika (Register, Timer, ...) werden meist vom Target Compiler optimiert Tabellenformat benötigt Ausführungs-Engine! ( bytes Overhead) Laufzeit festgelegt durch „run-to-completion“-Semantik
8
Codegenerierung für Simulink
Drei kommerzielle Produkte verfügbar Embedded Coder (MathWorks) Real Time Workshop (MathWorks) TargetLink (dSPACE GmbH) Quelle: dSPACE GmbH
9
Thanks for the slides: Daniela Weinberg
Prinzip Thanks for the slides: Daniela Weinberg
10
Beispiel Schaltsystem mit Schwellwert 0.5
physikalisches Modell (SimuLink) Implementierungsmodell (TargetLink) Äquivalenz?
11
generierter Code Zweierpotenz-Skalierung; 128 * 2-8 = 0.5
Void switch_system(Void) { /* Switchswitch_system/switch_primitive */ if (Sa1_Input2_ >= 128 /* 0.5 */) { /* # combined # Outport: switch_system/OutputPort */ Sa1_OutputPort_ = Sa1_Input1_; } else {
12
Codeabsicherung Wie kann man sicherstellen, dass der generierte Code das Erwartete leistet? (c) generierter Code (a) Modell (b) Code- Generator (d) Code Ausführung Physical Model (floating - point) Compiler (Linker) Host PC Code generator C Code Target Implementation Model (fixed - point) Cross - compiler (Linker / Loader ) Qualitätssicherung auf jeder Ebene notwendig!
13
Modelltransformation
Codegenerator = Compiler Grammatik Metamodell Abstrakter Syntaxbaum XML-Repräsentation Attributgrammatik Graphtransformation Realisierung von Modell-Codegeneratoren durch Modelltransformationen verschiedene Standards verfügbar: QVT/M2M, ATL, MOF2Text, Tefkat, XSLT, ...
14
QVT Beispiel Geg. Metamodell für Quell- und Zielmodelle
A Model-Driven Development Approach to Mapping UML State Diagrams to Synthesizable VHDL Stephen K. Wood, David H. Akehurst, Oleg Uzenkov, W. Gareth J. Howells, and Klaus D. McDonald-Maier
15
VHDL Metamodell
16
QVT Regel
17
Beispiel: Elimination von „deep transitions“
Graphical Composition of State-Dependent Use Case Behavioral Models Jon Whittle, João Araújo, Ana Moreira, Rasheed Rabbi
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.