CS 522, Embedded Systems

Autumn  2007 - 2008


Purandar Bhaduri, ext: 2360 (Email: pbhaduri)

Teaching Assistants

Chokshi Devesh Bharatkumar (Email: chokshi)
Amit Chandrashekhar Kulkarni  (Email: c.kulkarni)
Ajay Chetry (Email: a.chetry)
Vijay Choudhary (Email: c.vijay)


CS203 (Discrete Maths)

CS 221 (Digital Design)

CS 222 (Computer Organization and Architecture).


P. Marwedel, Embedded System Design. Springer Verlag, 2006. (Available in Indian edition from New Age International, New Delhi.)

The author’s course material (including lecture slides).

Reference Books

You may refer to the following books for additional reading.

1.      W. Wolf, Computers as components: principles of embedded computing system design. Morgan Kaufmann, 2005.


2.      G.C. Buttazzo, Hard real-time computing systems: predictable scheduling algorithms and applications. Kluwer Academic Publishers, 2005.


Other Sources

1.      ARTIST Network of Excellence on Embedded Systems Design is an excellent source containing a wealth of material on research on embedded systems. In particular, look at the Dissemination and Course Material Available Online page.


2.      Lecture Slides of Reinhard von Hanxleden on Modeling Reactive Systems (2004 and 2005).


3.      EE249 Course at Berekeley (Design of Embedded Systems: Models, Validation and Synthesis, Fall 2007) with lecture notes by Alberto L. Sangiovanni-Vincentelli.


4.      The synchronous hypothesis and synchronous languages, D. Potop-Butucaru, R. De Simone, J.-P. Talpin, in The Embedded Systems Handbook, CRC Press, 2005. See also, The Synchronous Languages Twelve Years Later, A. Benveniste et al, Proc. of the IEEE, 91(1), special issue on Embedded Systems, 64-83, Jan 2003.


5.      Esterel


a.       The ESTEREL Language (see the link on main papers and read “The Foundations of Esterel” and “The Esterel Primer”.)


b.      Esterel Studio from Esterel Technologies


6.      The original Statecharts model proposed by David Harel


a.      Statecharts: A Visual Formulation for Complex Systems, David Harel, Science of Computer Programming 8(3): 231-274 (1987)


b.      STATEMATE: A Working Environment for the Development of Complex Reactive Systems, David Harel, Hagi Lachover, Amnon Naamad, Amir Pnueli, Michal Politi, Rivi Sherman, Aharon Shtull-Trauring, Mark Trakhtenbrot, IEEE Trans. Software Eng. 16(4): 403-414 (1990)


7.       UML and UML State Machines


a.       The UML Resource Page from OMG.


b.      UML 2.0 Tutorial by Ileana Ober.


c.       Unified Modeling Language 2.0 by Harald Störrle and Alexander Knapp.


d.      Introductory chapter from the book Real-Time UML Workshop for Embedded Systems by Bruce Powel Douglass, Elsevier.

e.       "Executable Object Modeling with Statecharts", D. Harel and E. Gery, Computer 30:7 (July 1997), IEEE Press, 31-42 (cover feature).

f.        Slides on “UML State Machines and Statecharts” (Part 1 and Part 2) by Bruce Powell Douglass.

g.       "UML Statecharts", Brunce Powel Douglass, Embedded Systems Programming, January 1999, pp. 22-42.

h.       "Class 505/525: State machines and Statecharts", Bruce Powel Douglass, Proceedings of Embedded Systems Conference, San Francisco 2001.

i.         Rhapsody: A Complete Life-Cycle Model-Based Development System, Eran Gery, David Harel, Eldad Palachi, IFM 2002, pp 1-10.

8.      Free copy of Real-Time Systems: Specification, Verification and Analysis, Mathai Joseph, Ed. Prentice-Hall, 1995.

Some Important Papers

1.      Design of Embedded Systems: Formal Methods, Validation and Synthesis, S. Edwards, L. Lavagno, E. Lee, A. Sangiovanni-Vincentelli, Proceedings of the IEEE, vol. 85 (n.3) - March 1997, pp 366-290.

2.      System level design paradigms: Platform-based design and communication synthesis, A. Pinto et al,  ACM Transactions on Design Automation of Electronic Systems 11(3): 537-563 (2006). See also, Platform-Based Design for Embedded Systems, L. Carloni et al, in R. Zurawski (Ed.), The Embedded Systems Handbook, CRC Press , 2005 and  System design: traditional concepts and new paradigms, A. Ferrari and  A. Sangiovanni-Vincentelli, International Conference on Computer Design 1999 (ICCD '99),  pp 2-12.

3.      The embedded systems design challenge, Thomas A. Henzinger and Joseph Sifakis, Proceedings of the 14th International Symposium on Formal Methods (FM), Lecture Notes in Computer Science 4085, Springer, 2006, pp. 1-15.

4.      From Control Loops to Real-Time Programs, P. Caspi and O. Maler, Handbook of Networked and Embedded Control Systems, 395-418, 2005.

5.      Real Time Scheduling Theory: A Historical Perspective, L. Sha et al, Real-Time Systems 28(2-3): 101-155 (2004).

6.      Scheduling algorithms for multiprogramming in a hard-real-time environment, C.L. Liu and J.W. Layland,  J. ACM Vol. 20 (1), 1973, pp. 46–61.

7.      Liu and Layland's schedulability test revisited, Raymond R. Devillers and Joël Goossens, Inf. Process. Lett. 73(5-6): 157-161 (2000).


8.      Giotto: A Time-triggered Language for Embedded Programming, T. A. Henzinger, B. Horowitz, and C. M. Kirsch, Proceedings of the IEEE 91:84-99, 2003. See also the Giotto page at Berkeley.


9.      The time-triggered architecture, H. Kopetz and G. Bauer, Proceedings of the IEEE, 91(1):112--126, January 2003.


10.  Timed Automata, R. Alur,  NATO-ASI 1998 Summer School on Verification of Digital and Hybrid Systems. See also, Timed Automata: Semantics, Algorithms and Tools, J. Bengtsson and W. Yi, Lectures on Concurrency and Petri Nets 2003, pp 87-124 and Foundation for Timed Systems, P. Bouyer, ARTIST2 Summer School on Component & Modelling, Testing & Verification, and Static Analysis of Embedded Systems, Sept 29 - Oct 2, 2005.


1.      Esterel Studio is installed on the Linux server loktak. To get an account on the machine please contact Ferdous. The command to invoke the program is ‘estudio’. For online help, follow the link Help -> Esterel Studio Manuals. Public domain Esterel tools are available from INRIA.

2.      Rhapsody is also installed on loktak. You can invoke the tool by typing any of the following commands: RhapsodyInC (for C), RhapsodyInCpp (for C++) or RhapsodyInJ (for Java). The command Rhapsody is the same as RhapsodyInCpp. For online help, click on the Documentation tab, or alternatively, look at the documents in /app/rhapsody-install/Doc/pdf_docs/listofbooks.pdf.

Homework Policy

No late submissions will be accepted! The work must be done on your own. Two or more identical or near identical solutions will get zero credit


1.      Homework # 1 Due date extended to 1 August.


Please prepare for a 30 min. presentation on a topic relevant to embedded systems research. You have to submit a 5 page report as well. Work in groups of two. Here are some suggested topics. You may choose your own topic, but please notify me. Please choose your topics by 24 September and email your choice to me along with the name of your group members. The presentations will be at end of the course.

 back to homepage