OT1 Version
Zeitbasen für Timing-Werte
Der Typ "TimeValueType" beschreibt ein Zeitstempel oder ein Zeitbereich anhand Zähler, Nenner und Einheit.
Basis-Type für alle Elemente dieses Formats. Dieser Typ definiert optionale Zusatzelemente, wie Comments oder CunstomData, welche beliebige Daten oder tollspezifische Erweiterungen beinhalten können.
Der Type "AnyDataType" steht als Datencontainer für toolspezifische Erweiterungen oder Zusatzdaten. Die Identifizierung der Tools kann anhand der Attribute "vendor", "tool" und "version" durchgeführt werden.
Dieser Typ dient als Container für beliebige Zusatzelemente.
Dieser Typ dient als Container für beliebige Kommentare.
BasisType für alle Elemente einer OT1-Konfiguration.
Basis-Type für alle global eindeutigen Elemente über OT1-Konfigurationen hinweg.
Basis-Type für alle eindeutigen Elemente innerhalb einer Element-Typ-Klasse. Folgende Klassen sind definiert:
- TaskType, InterruptType, ThreadType
- RunnableType
- FunctionType
- CodeBlockType
- TimeStampElementType
- TimeRangeElementType
- PduType, SignalType, FrameType, MessageType
Dieser Type definiert einen OT1-Trace in Hexadezimal Darstellung, nach dem OT1-Trace-Format.
Dieser Type beschreibt eine Link zu einem OT1-Binär-Trace.
"XmlTraceType" beschreibt einen OT1-Trace aus XML-Elementen. Ein OT1-Trace kann 0..n Einträge/Events (TraceEntry) haben und zusätzlich 0..n Kommentare (TraceComment).
Ein Trace-Einträg (TraceEntryType) besitzt immer eine Zeitstempel (time), der eindeutig beschreibt, wann ein Ereignis (value) stattfand. Optional können immer noch Daten in Form eines strings hinzugefügt werden.
Mit einem Element vom Typ "TraceCommentType" kann ein Trace um einen Kommantar erweitert werden. Das Element "comment" beinhaltet den eigentlichen Kommentar als string. Optional kann ein Zeitstempel (time1 > 0) oder ein Zeitbereich (time1 > 0 UND time2 > 0) angegeben werden für die exakt dieser Kommentar gilt.
Der Typ "ClockType" beschreibt die Basisgrößen über den zum Messen/Tracen verwendeten Timer, wie "tickduration" und die maximale, absolute Zeit des Timers (maxAbsTime).
Ein "SchedulingEntityType" bescheibt eine Basiseinheit, die einem Scheduler unterliegt. Diese global eindeutige Einheit muss über weitere SchedulingEnityTypes hinweg eindeutig sein (uuid).
Jeder SchedulingEntity muss eine "Clock" vom Type "ClockType" definieren, die Aufschluß über den zum Messen verwendeten Timer gibt.
Ein solches "SchedulingEntity" kann beleibeig viele Elemente vom Typ "SchedulingEntityElementType" haben, die das System beschreiben.
Ein SchedulingEntity beinhaltet auch die komplette Beschreibung aller möglichen Events und EventChains, die in den Traces vorkommen dürfen.
Jeder Trace gehört zu genau einer SchedulingEntity, daher kann eine SchdulingEntity 0..n Traces haben. Die Referenzgröße, die die Zusammengehärigkeit definiert ist die "uuid".
Weiter kann im Element "TracingOverheadContainer" der Mess-Overhead für beliebeige Events definiert werden. Diese Größen können zur Korrectur der Messergebnisse herangezogen werden.
Der "EventDescriptionContainerType" beschreibt alle möglichen Events vom Type EventDescriptionType" und EventChains vom Typ "EventChainDescriptionType".
Jedes Event, das in den Messungen oder Traces vorkommt muss in diesem Container aufgelistet und eindeutig referenzierbar sein.
Diese Enumeration listet alle EventTypen auf.
Jedes Event muss ein Mapping von einem Wert (value) auf einen Event-Typ (eventType) und ein OT1-Element (elementRefId) aufweisen. Nur so kann ein Event eindeutig die Frage "Was is bei wem passiert?" beantworten.
Jede Event-Beschreibung hat seine eigene ID, die innerhalb eines SchedulingEntity eindeutig sein muss. Über diese ID können weitere Element sich auf eine Event-Beschreibung referenzieren.
Optional kann pro Event eine weitere Beschreibung (description) angegeben werden.
Eine Event-Kette kann über den Type "EventChainDescriptionType" definiert werden. Diese Ketten bestehen immer aus einem Start- und einem Ende-Event, die anhand der Event-ID referenziert werden, und optional aus 0..n Kettenelementen/-events (InterChainEventId).
Ein Tracing-Overhead muss imer eine Zeit angeben, die für das Tracen eines Events verbraucht wird.
Dieser Typ ist allgemein gehalten, daher ist es auch möglich einen Overhead anzugeben, ohne ein direkte Referenz zu einem Event. In diesem Fall gilt dieser Overhead für alle Events, für die es keinen expliziten Overhead gibt.
Es gibt 3 Arten (Overhead-)Zeiten, die beim Messen von Zeitstempeln beachtet werden müssen. Es ist möglich die Zeit von Beginn der Trace-Prozedur bis zum Lesen der Systemzeit (before taking time) anzugeben und die Zeit vom LEsen der Systemzeit bis zum Ende der Tracing-Prozedur (after taking time) oder eine Zeit, die die andern zwei Zeiten beinhaltet (total overhead).
Dieser Container ist eine Ansammlung aller Overhead-Elemente.
Die "SchedulingEntity" OsekOsType beschreibt ein OSEK OS.
Die "SchedulingEntity" AutosarOsType beschreibt ein AUTOSAR OS.
Die "SchedulingEntity" PosixOsType beschreibt ein POSIX OS.
Die "SchedulingEntity" WindowsOsType beschreibt ein Windows OS.
Die "SchedulingEntity" CanBusType beschreibt einen CAN Bus.
Die "SchedulingEntity" FlexRayBusType beschreibt einen FlexRay Bus.
Die "SchedulingEntity" LinBusType beschreibt einen LIN Bus.
Die "SchedulingEntity" MostBusType beschreibt einen MOST Bus.
Ein "SchedulingEntityElementType" beschreibt ein Element eines SchedulingEntities, also ein Element, welches von einem Scheduler verwaltet wird.
Elemente vom Type "ApplicationElementType" sind in der Regel Elemente, die Code ausführen und zu einer Anwendung/Applikation gehören. Beispiele sind Task oder Interrupts.
Elemente vom Type "CommunicationElementType" sind in der Regel Elemente, die für die Kommunikation verantwortlich sind oder als Träger von Daten während der Kommunikation.
Elemente vom Type "VirtualElementType" sind in der Regel virtuelle Elemente, die vom Benutzer oder Tool angesetzt werden, wie z.B. Stoppuhr-Elemente oder benutzerdefinerte Event-Marker.
Elemente vom Type "DataElementType" sind in der Regel Elemente, die Daten beinhalten, z.B. Variablen oder Puffer.
Elemente vom Type "SchedulableApplicationElementType" sind Elemente, die Code ausführen und vom Scheduler als Schedule-Einheit angesehen werden (Tasks, Interrupts, Thread (Posix/Windows), Process (Posix/Windows)).
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Ein TaskType beschreibt eine Task in einem OS.
Diese Auflistung listet die Ausprägungen einer Task.
Ein InterruptType beschreibt einen Interrupt in einem OS.
Diese Auflistung listet die Ausprägungen eines Interrupts.
Ein ThreadType beschreibt eine Thread in einem OS (Posix, Windows).
Ein RunnableType beschreibt ein Runnable.
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Ein FunctionType beschreibt eine Funktion.
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Ein CodeBlockType beschreibt einen Code-Block.
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Ein TimeRangeElementType definiert eine beliebige Zeitspanne, für welche Timing-Informationen gewonnen werden können.
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Ein EventChainElementType definiert eine "Event-Kette", bestehend aus beliebig vielen Events, mindestens aber 2.
Ein TimeStampElementType definiert eine beliebige Zeitspanne, für welche Timing-Informationen gewonnen werden können.
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Dieses Element beschreibt eine Referenz auf ein bestimmtes Event.
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Beschreibt eine Variable oder ein Daten-Symbol.
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
Definiert die Laenge der Variablen/des Symbols in Bytes
Alle Elemente dieses Typs (und der abgeleiteten Typen) teilen sich einen ID-Raum!!
alle Elemente vom Type "TimingValueElementType" können Timing-Daten speichern oder diese anfordern (request). Diese enthalten die gemessenen oder analysierten Ergebnisse oder auch die angenommenen Werte.
Die Basis-Timing-Informationen werden in Elemente vom Typ "TimingInformationenElementType" gespeichert. Diese bestehen immer aus dem Wert an sich (Value), einem Typ "type", einem Sub-Typ "subType" und der Quelle der Information "source".
Die Auflistung aller Basis-Timing-Typen:
CET: Core Execution Time
GET: Gross Execution Time
DT: Delta Time
RT: Response Time
ST: Slack Time
IPT: Inital Pending Time
PRE: Preemption Time
OFF: Offset
PER: Period
CPU: CPU load
CAF: Code Access Frequency
DAF: Data Access Frequency
DAT: Data Access Time
TT: Transmission Time
Die Auflistung aller Basis-Timing-Sub-Typen.
Die Auflistung aller Timing-Quellen.
Der Basistyp für alle Timing-Constraints.
Über den Typ "TimingInformationConstraintType" können Timing-Constraints oder Min- bzw. Max-Grenzen (thresholdType) für alle Basis-Timing-Informationen (timingValueType) definiert werden. "Threshold" ist die zu überwachende Grenze.
siehe AUTOSAR_TPS_TimingExtensions.pdf
siehe AUTOSAR_TPS_TimingExtensions.pdf
siehe AUTOSAR_TPS_TimingExtensions.pdf
siehe AUTOSAR_TPS_TimingExtensions.pdf
siehe AUTOSAR_TPS_TimingExtensions.pdf
siehe AUTOSAR_TPS_TimingExtensions.pdf
siehe AUTOSAR_TPS_TimingExtensions.pdf