The Timing Definition Language (TDL)

Similar documents
Trends in Embedded Software Engineering

Integrated Model-based Software Development and Testing with CSD and MTest

From Control Loops to Software

AUTOSAR Software Architecture

Formal Engineering for Industrial Software Development

EasyC. Programming Tips

Automatic Test Data Generation for TTCN-3 using CTE

Seminar Automotive Open Systems Architecture

Product Information Services for Embedded Software

Arena Tutorial 1. Installation STUDENT 2. Overall Features of Arena

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Semester Review. CSC 301, Fall 2015

The Service Revolution software engineering without programming languages

Compiler Construction

Presentation of the AADL: Architecture Analysis and Design Language

Textual Modeling Languages

Analog Monitoring Tool AMT 0.3b User Manual

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Spring,2015. Apache Hive BY NATIA MAMAIASHVILI, LASHA AMASHUKELI & ALEKO CHAKHVASHVILI SUPERVAIZOR: PROF. NODAR MOMTSELIDZE

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Chapter 2: Remote Procedure Call (RPC)

Managing Variability in Software Architectures 1 Felix Bachmann*

Application Note: AN00141 xcore-xa - Application Development

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code

Introduction. What is an Operating System?

Oracle BI EE Implementation on Netezza. Prepared by SureShot Strategies, Inc.

Adaptive Cruise Control System Overview

Fundamentals of Java Programming

Origins of Operating Systems OS/360. Martin Grund HPI

The QueueMetrics Uniloader User Manual. Loway

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

THREE YEAR DEGREE (HONS.) COURSE BACHELOR OF COMPUTER APPLICATION (BCA) First Year Paper I Computer Fundamentals

Communication Protocol

UML-based Test Generation and Execution

Multi-Agent Technology & Scheduling Solutions

Forward proxy server vs reverse proxy server

High-level Design. What is software architecture?

Embedded Software Development with MPS

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

The Temporal Firewall--A Standardized Interface in the Time-Triggered Architecture

Setting up a Local Interconnect Network (LIN) using dspace MicroAutoBox 1401/1501 Simulink Blocks

Integration of DB oriented CAD systems with Product Lifecycle Management

Oracle Data Integrator for Big Data. Alex Kotopoulis Senior Principal Product Manager

Safety and security related features in AUTOSAR

Moving from CS 61A Scheme to CS 61B Java

ZME_05459 Wall Blind Control Set for Busch-Jaeger DURO 2000 Firmware Version : 1.8

Extending XSLT with Java and C#

Web Presentation Layer Architecture

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

Architecture Design & Sequence Diagram. Week 7

Operating System Structures

Compiler I: Syntax Analysis Human Thought

Spark in Action. Fast Big Data Analytics using Scala. Matei Zaharia. project.org. University of California, Berkeley UC BERKELEY

1/20/2016 INTRODUCTION

VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR

EcgSoft. Software Developer s Guide to RestEcg. Innovative ECG Software info@ecg-soft.com

Giotto: A Time-Triggered Language for Embedded Programming

Designing Real-Time and Embedded Systems with the COMET/UML method

OSEK/VDX. Operating System. Version February 17 th, 2005

DiskPulse DISK CHANGE MONITOR

INTRODUCTION TO APACHE HADOOP MATTHIAS BRÄGER CERN GS-ASE

Top Weblogic Tasks You can Automate Now

Modern PL/SQL Code Checking and Dependency Analysis

Semester Thesis Traffic Monitoring in Sensor Networks

Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

8 Tutorial: Using ASN.1

Concepts and terminology in the Simula Programming Language

Programming Without a Call Stack: Event-driven Architectures

TABLE OF CONTENTS. xiii List of Tables. xviii List of Design-for-Test Rules. xix Preface to the First Edition. xxi Preface to the Second Edition

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

Lesson 06: Basics of Software Development (W02D2

Certified Selenium Professional VS-1083

Introduction p. 1 Requirements p. 2 Warehousing p. 2 Characteristics of warehouse systems p. 4 Optimization of warehouse systems p.

Board also Supports MicroBridge

Programming Languages

For Introduction to Java Programming, 5E By Y. Daniel Liang

CHAPTER FIVE RESULT ANALYSIS

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

The Quest for Conformance Testing in the Cloud

EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS

From Control Loops to Real-Time Programs

Inteset Secure Lockdown ver. 2.0

Introduction and Overview

Lecture 1: Introduction

CS3600 SYSTEMS AND NETWORKS

Production time profiling On-Demand with Java Flight Recorder

PIE. Internal Structure

Manjrasoft Market Oriented Cloud Computing Platform

ISSN: (Online) Volume 3, Issue 4, April 2015 International Journal of Advance Research in Computer Science and Management Studies

Visual Basic. murach's TRAINING & REFERENCE

ARIS Education Package Process Design & Analysis

Transcription:

The Timing Definition Language (TDL) Prof. Dr. Wolfgang Pree Dr. (ETH) Josef Templ Department of Computer Science Universität Salzburg cs.uni-salzburg.at MoDECS.cc PREEtec.com

Overview TDL programming model for concurrent hard real-time software TDL component model Simple TDL example Tool chain Current state 2 W. Pree, J. Templ: TDL

What is TDL? A high-level textual notation for defining the timing behavior of a real-time application. Conceptually based on Giotto (University of California, Berkeley). TDL = Giotto + syntax + component architecture + cleanups. Analogy: IDL (CORBA, MIDL) vs. TDL IDL defines an interface for a distributed application => Separates interface from implementation TDL defines the timing for a real-time application => Separates timing from implementation 3 W. Pree, J. Templ: TDL

Schematic overview of Giotto/TDL concepts SampleModule InitMode Sensor Task1 300Hz Task2 100Hz mode switch Actuator OperationMode Task1 200Hz Task3 600Hz Giotto programs are multi mode & multi rate systems for long running tasks. 4 W. Pree, J. Templ: TDL

The Giotto/TDL Programming Model (LET) release Logical Execution Time (LET) terminate Logical task invocation time Physical start suspend resume stop ET <= WCET <= LET results are available at 'terminate' 5 W. Pree, J. Templ: TDL

Unit Delay LET task a 1 2 3 o:1 o:2 o:3 time task b 1 2 3 6 W. Pree, J. Templ: TDL

Unit Delay LET task a 1 2 3 o:1 o:2 o:3 time task b 1 2 3 task c 1 2 3 4... but isn't it a waste of time? => determinism, composition, transparent distribution 7 W. Pree, J. Templ: TDL

Summary of Giotto Heritage Sensor and actuator ports are used to interact with the environment. A program is in one of potentially multiple modes. Every mode consists of periodic activities: task invocations actuator updates mode switches A mode has a fixed period. Activities are carried out conditionally. Activities have their individual execution rate. Timing and interaction of activities follows LET semantics. 8 W. Pree, J. Templ: TDL

TDL Component Model: Motivation ECU1 Program1 ECU2 Program2 ECU3 Program3 e.g. modern cars have up to 80 control units (ECUs) ECU consolidation is a topic run multiple programs on one ECU leads to TDL component model 9 W. Pree, J. Templ: TDL

TDL Component Model ECU Program1 Program2 Program3 ProgramX is called a module modules may be independent modules may also refer to each other (DAG) modules can be used for multiple purposes 10 W. Pree, J. Templ: TDL

Usage of Modules decomposition of large programs grouping of unrelated modules parallel automatons ECU consolidation client/service relationship provide common definitions for constants, types, etc. data flow from service to client module distributed execution 11 W. Pree, J. Templ: TDL

TDL Syntax by Example module M1 { sensor boolean s1 uses gets1; actuator int a1 uses seta1; public task inc [wcet=4ms] { output int o := 10; uses incimpl(o); } start mode main [period=10ms] { task [freq=1] inc(); actuator [freq=2] a1 := inc.o; mode [freq=1] if exitmain(s1) then freeze; } } mode freeze [period=1000ms] {} 12 W. Pree, J. Templ: TDL

Module Import module M2{ } import M1; task clienttask [wcet=10ms] { input int i1; } mode main [period=100ms] { task [freq=1] clienttask(m1.inc.o); } Import relationship forms a DAG. TDL supports structured module names (e.g. com.avl.p1.m1) import with rename: (e.g. import com.avl.p1.m1 as A1;) group import: (e.g. import com.avl.p1 {M1, M2, M3};) 13 W. Pree, J. Templ: TDL

Module Summary provides a named program component provides a name space allows for exporting sensors, constants, types, task outputs may be imported by other module(s) acts as unit of composition acts as the unit of loading acts as the unit of execution partitions the set of actuators acts as the unit of distribution TDL supports multi mode & multi rate & multi program systems. 14 W. Pree, J. Templ: TDL

More Language Constructs Constants const c1 = 100; const p = 100ms; Types Basic types: like Java byte, short, int,... User defined opaque types: defined externally type T; 15 W. Pree, J. Templ: TDL

Differences to Giotto TDL provides a component model (module). TDL defines a concrete syntax and.ecode file format. TDL does not need explicit task invocation drivers, mode switch drivers and actuator update drivers as Giotto does. Drivers are defined implicitly by the TDL syntax and semantics. The user needs to implement only guards, sensor getters, actuator setters, port initializers, and, of course, task functions. TDL defines program start as mode switch to start mode. TDL disallows non-harmonic mode switches. Mode port assignments differ. Timing is in us. 16 W. Pree, J. Templ: TDL

Tool Chain Overview functionality code.tdl Compiler.ecode E-machine* *Java, OSEK, InTIME, RTLinux,... 17 W. Pree, J. Templ: TDL

Tool Chain Overview functionality code.tdl Compiler.ecode E-machine* AST platform specific Platform plugin* platform specific *Java, OSEK, InTIME, RTLinux,... 18 W. Pree, J. Templ: TDL

Tool Chain Overview Matlab/Simulink Model Visual TDL Editor Decoder functionality code.txt.tdl Compiler.ecode E-machine* AST platform specific Platform plugin* platform specific *Java, OSEK, InTIME, RTLinux,... 19 W. Pree, J. Templ: TDL

Source Code Organization emcore (37.775 loc) ast abstract syntax tree (1.180) ecode ecode instructions and reader (613) scheduler node schedulers (1.039) tools (34.829) decode.ecode decoder (222) emachine E-machine (3.323) tdlc TDL compiler (5.248) platform standard platform plugins (2.261) vtdl visual TDL editor (24.198) busch bus scheduler (1.824) util various utility classes (114) 20 W. Pree, J. Templ: TDL

TDL Compiler implemented with compiler generator Coco/R for Java. (Mössenböck, JKU Linz) production quality recursive descent compiler in Java. 2 phases: 1. parse source text and build AST 2. generate.ecode file from AST plugin interface defined by base class Platform plugin life cycle: open {emitcode} close additionally: seterrorhandler, setdestdir 21 W. Pree, J. Templ: TDL

Java-based E-machine used as proof of concept experimentation platform not hard-real time consists of.ecode loader task scheduler E-code interpreter dispatcher bus controller (for distribution) Interacts with functionality code via drivers 22 W. Pree, J. Templ: TDL

State Ready TDL Compiler for complete TDL Decoder Java-based E-machine for multiple modules Visual TDL Editor InTIME, OSEK, TTA TDK (from MoDECS.cc) Work in Progress ANSI C back ends for POSIX, RTLinux, OSEK, InTIME E-machines for distribution Bus Scheduler 23 W. Pree, J. Templ: TDL

Thank you for your attention! 24 W. Pree, J. Templ: TDL

TDK - TDL Development Kit preconfigured collection of Java-based TDL tools (tdlc, emachine, decoder, Java plugin, JavaDocs, Tutorial) for learning TDL and for easy experimentation with real time applications batch files for Windows command prompt downloadable from MoDECS home page (MoDECS.cc) TDL Tutorial: Explains how to use the TDL tools from command line. Uses sequence of examples with increasing complexity: single rate, multi rate, multi mode, multi module, [multi node] 25 W. Pree, J. Templ: TDL