The Timing Definition Language (TDL)
The Timing Definition Language (TDL)
(TDL)
cs.uni-salzburg.at
MoDECS.cc
PREEtec.com
Overview
SampleModule
InitMode
Task1 300Hz
Task2 100Hz
Sensor Actuator
mode switch
OperationMode
Task1 200Hz
Task3 600Hz
release terminate
Logical Execution Time (LET)
Logical
task invocation time
Physical
task a 1 2 3
time
task b 1 2 3
task a 1 2 3
time
task b 1 2 3
task c 1 2 3 4
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
ECU1 ECU2
Program1 Program2
ECU3
Program3
ECU
Program1
Program2
Program3
distributed execution
module M2{
import M1;
…
task clientTask [wcet=10ms] {
input int i1;
…
}
mode main [period=100ms] {
task [freq=1] clientTask(M1.inc.o);
…
}
}
TDL supports multi mode & multi rate & multi program systems.
Constants
const c1 = 100;
const p = 100ms;
Types
Basic types: like Java
byte, short, int, ...
functionality
code
functionality
code
AST
platform
Platform platform
specific plugin* specific
Matlab/Simulink
Decoder .txt
Visual
Model
TDL
Editor
functionality
code
AST
platform
Platform platform
specific plugin* specific
task scheduler
E-code interpreter
dispatcher
Ready
TDL Compiler for complete TDL
Decoder
Work in Progress
ANSI C back ends for POSIX, RTLinux, OSEK, InTIME…
Bus Scheduler
single rate, multi rate, multi mode, multi module, [multi node]