Embedded Software Engineering Course, Winter 2006/2007

Prof. Kirsch, Department of Computer Sciences, University of Salzburg

Time, Location: Tue 3-4 in T05, Techno-Z, Th 10-12 in T03, Techno-Z. First lecture on Th, Oct 5, 10-12. Check schedule for updates.

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.

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.


  • Each student is expected to read papers before certain lectures (not more than one paper per week) and send a short summary (3-4 bullet items) of each paper by email to the TA before these lectures.
  • There will be a few homework assignments, e.g., programming exercises.
  • Teams of 2-3 students will develop and implement embedded software projects, e.g., on Lego Mindstorms, Motes, or Gumstix, present and give demos of their projects at the end of the semester, and write project reports that could eventually result in publications. Each team creates a wiki page that describes the project.

List of Projects:

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.
Web sources: Esterel, Lustre, Giotto, BrickOS.

Grading: 10% paper summaries, 20% homework, 70% project.

Prerequisites: C programming experience, basic knowledge of operating system concepts.

Restrictions: The number of available Lego Mindstorm robots is limited. Course language is English.

Technical contact: Robert . Staudinger @ cs . uni-salzburg . at
Administrative contact: Petra . Kirchweger @ cs . uni-salzburg . at