Embedded Software Engineering Course, Winter 2004/2005
Time, Location: Tue 8-10, Th 8-9, Techno-Z, T03. First lecture on Oct 7, 2004.
Brief Overview:
This course will provide an introduction to embedded software engineering: the
first part covers real-time operating systems, real-time communication
protocols, and scheduling theory; the second part focuses on real-time
programming and code generation. The course begins with an introduction to
real-time operating system concepts and real-time communication protocols such
as the time-triggered protocol (TTP) and
the event-triggered CAN
protocol. Scheduling techniques such as rate-monotonic and earliest deadline
first will be illustrated. The second half of the course emphasizes real-time
programming and code generation for embedded systems. The high-level embedded
programming languages Esterel, Lustre,
and Giotto, will be
presented. Code generation for Giotto will be discussed based on a virtual
machine architecture called the Embedded Machine. Example programs in
Esterel, Lustre, and Giotto will be implemented on Lego Mindstorm robots.
Slides:
Projects:
Goal of the course:
Learn how to evaluate applications with real-time requirements, identify
adequate programming paradigm and platform, implement applications with
real-time requirements.
Assignments:
-
Each student is expected to read papers (see list below) before certain
lectures (not more than one paper per week) and send a short summary (3-4
bullet items) of each paper by email before these lectures.
-
There will be a few home work assignments, e.g., programming exercises.
-
Teams of 2-3 students will develop and implement Lego Mindstorm projects,
present and give demos of their projects at the end of the semester, and
write project reports that could eventually result in publications.
Required Textbooks:
-
Hermann Kopetz, Real-Time Systems: Design Principles for Distributed
Embedded Applications, 1997.
-
Giorgio C. Buttazzo, Hard Real-Time Computing Systems: Predictable
Scheduling Algorithms & Applications, 1997.
Papers on Programming Abstractions:
-
T.A. Henzinger, C.M. Kirsch, B. Horowitz: Giotto: A Time-triggered Language
for Embedded Programming. Proceedings of the IEEE, vol. 91 (1), 2003.
-
N. Halbwachs, P. Caspi, P. Raymond, D. Pilaud:
The synchronous dataflow programming language Lustre.
Proceedings of the IEEE, vol. 79 (9), 1991.
-
GĂ©rard Berry: The Foundations of Esterel. Proof, Language and
Interaction: Essays in Honour of Robin Milner, MIT Press, 2000.
-
N. Wirth: Toward a discipline of real-time programming. Communications of the
ACM, vol. 20, 1977.
Papers on Runtime Abstractions:
-
T.A. Henzinger, C.M. Kirsch: The Embedded Machine: Predictable, Portable
Real-Time Code. PLDI 2002.
-
T.A. Henzinger, C.M. Kirsch, S. Matic: Schedule-Carrying Code. EMSOFT 2003.
-
N. Wirth: Tasks versus threads: An alternative multiprocessing paradigm. Software: Concepts and
Tools, vol. 17, Springer, 1996.
Papers on Model-Based Design:
-
T.A. Henzinger, C.M. Kirsch, M.A.A. Sanvido, W. Pree: From Control Models to Real-Time Code using Giotto.
IEEE Control Systems Magazine, February, 2003.
-
P. Caspi, A. Curic, A. Maignan, C. Sofronis, S. Tripakis, P. Niebert:
From Simulink to SCADE/Lustre to TTA: A Layered Approach for Distributed
Embedded Applications. LCTES 2003.
-
N. Scaife, C. Sofronis, P. Caspi, S. Tripakis, F. Maraninchi:
Defining and translating a "safe" subset of Simulink/Stateflow into Lustre.
EMSOFT 2004.
-
P. Caspi, A. Curic, A. Maignan, C. Sofronis, S. Tripakis:
Translating Discrete-Time Simulink to Lustre.
EMSOFT 2003.
Papers on Clock Synchronization:
-
Leslie Lamport: Time, clocks, and the ordering of events in a distributed
system. Communications of the ACM, vol. 21 (7), 1978.
Papers on WCET Analysis:
-
H. Theiling, C. Ferdinand, R. Wilhelm: Fast and precise WCET
prediction by separated cache and path analyzes. Real-Time Systems, vol. 18
(2-3), 2000.
Web sources: Esterel, Lustre,
Giotto,
LegOS.
Grading: 10% paper summaries, 20% home work, 70% project.
Mailing list: ese-winter-2004 @ cs . uni-salzburg . at
Prerequisites: C programming experience, basic knowledge of operating
system concepts.
Restrictions: The number of available Lego Mindstorm robots is limited.
Course language is English.
Administrative contact: Petra . Kirchweger @ cs . uni-salzburg . at
|