Logo TU Ilmenau


Complex Embedded Systems (RCSE)

Course offered by the System and Software Engineering group together with the Computer Architecture and Embedded Systems group during summer semester 2019.


  • Master "Research in Computer & Systems Engineering": compulsory optional subject for the second semester (Module "Computer Engineering & Architecture" of Advanced Studies)
  • 2 SWS lectures, 1 SWS seminar; 5 LP (credit points)
  • There is a formally independent lab training class on the same subject that can be done together with CES.


Introduction to Embedded Systems Design (see "Lectures" below for a more specific list of topics after logging in to the web site)


  • The exam has been planned, details below.
  • The student talks have been planned, there may be updates to the schedule if necessary. They will already begin on Tuesday April 30 because of the high number of participants.
  • The lecture takes place in lecture room HU211/12 (Humboldt building) on Tuesdays at 16:45. The time may change for the second half of the semester.
  • Please enrol and register for your choice of student talk via Moodle until April 21.
  • Please officially register your participation in the class with your Thoska card before your talk takes place, but in any case no later than May 13! You have to do the class afterwards.
  • The embedded systems lab (which is organized independently from the CES lecture, but is a good practical supplement) starts on Thursday April 18. Check its own web site for details.


  • Lecturers: Prof. Dr.-Ing. Wolfgang Fengler and Prof. Dr.-Ing. Armin Zimmermann
  • Lecture: one meeting per week, Tuesday 16:45 - 18:15 , lecture room HU211/212
    (during the second half of the semester the lecture may move)
  • Parts of the course 
    • Lecture throughout the summer semester
    • Reading assignments accompanying the lecture, books are available in the library
    • Talks prepared individually and given by students, see below for scheduled days and room
    • Written exam (details see below)
  • Grading: based on exam (70%) and talk (30%), aPL; both parts have to be passed.
  • All parts of the course are held in English

Access lecture slides

To access downloadable material for the lecture and see the reading assignments, log in to the web site using your general TU account at the top right of the web site.

Student Talks

Just like for the software & systems engineering class in Winter, there will be student talks assigned on special topics of embedded systems. There are several seminar-style meeting in which the participants give their talks. The talk is part of the grading and can be done individually or in groups of two students.

Topics are based on books from the course collection in the library and others that can be borrowed from Prof. Zimmermann. Each talk must not exceed 12 minutes (15 minutes for talks prepared by two students), discussion time is extra. Dont try to squeeze all of the contents of your reference documents into the slides, concentrate on the main points of your topic. It is not necessary to repeat information known from the previous lectures (S&SE, CES). Please email your presentation (either PDF or PPT format) to Prof. Zimmermann on the day before the seminar, to give all presentations using one laptop computer. 

Student Talk Topics

Topics for student talks
01Aperiodic task schedulingHard Real-time computing systems Chapter 3
02Power-Aware Resource ManagementHandbook of Real-Time and Embedded Systems Chapter 6
03Overload managementSoft Real-Time Systems, Chapter 2
04C for embedded systemsProgramming Embedded Systems in C and C++
05Ada for embedded systemsReal-Time Systems and Programming Languages, Ada resources
06Programming language choiceSoftware Engineering for Real-Time Systems, Chapter 9.4
07Low-level programmingReal-Time Systems and Programming Languages Chapter 15, Computers as Components Chapter 3.2
08Real-time facilities in programming languagesReal-Time Systems and Programming Languages Chapter 12
09Software fault toleranceReal-Time Systems and Programming Languages Chapter 5
10Exception handlingReal-Time Systems and Programming Languages Chapter 6
11Concurrent programmingReal-Time Systems and Programming Languages Chapter 7
12Shared-variable based synchronization and communicationReal-Time Systems and Programming Languages Chapter 8
13Message-based synchronization and communicationReal-Time Systems and Programming Languages Chapter 9
14Real-Time Kernel DesignHard Real-time computing systems Chapter 9
15Static analysis of embedded systemsSoftware Engineering for Real-Time Systems, Chapter 11.2
16Dynamic analysis of embedded systemsSoftware Engineering for Real-Time Systems, Chapter 11.4
17Embedded Systems Debugging TechniquesSoftware Engineering for Real-Time Systems, Chapters 12.2-12.8
18Compilation techniquesComputers as Components Chapter 5.5
19An embedded system design exampleComputers as Components Chapter 1.4
20The ARM embedded processorComputers as Components Chapter 2.3
21Memory ManagementComputers as Components Chapter 3.5
22CPU bus systemsComputers as Components Chapter 4.3
23Performance analysisComputers as Components Chapter 4.7
24Embedded networksComputers as Components Chapter 8
25The Time-Triggered ProtocolReal-Time Systems (Kopetz) Chapter 8
26Overview of Wireless Sensor NetworksNetworked Embedded Systems Chapter 3
27Wireless Sensor Network ArchitecturesNetworked Embedded Systems Chapter 4
28Routing Techniques for Wireless Sensor NetworksNetworked Embedded Systems Chapter 7
29Trends in Automotive Communication SystemsNetworked Embedded Systems Chapter 13
30CAN - controller area networkNetworked Embedded Systems Chapter 14
31FlexRay BusNetworked Embedded Systems Chapter 15
32LIN BusNetworked Embedded Systems Chapter 16
33Reconfigurable ComputingReconfigurable computing systems engineering (chapters 1-3)
34Embedded safety-critical systemsEmbedded software development for safety-critical systems (chapters 10, 16, 17)
35Real-Time C++ programmingReal-time C++ : efficient object-oriented and template microcontroller programming (select from chapters 4, 5, 7)
36Multicore embedded systemsReal world multicore embedded systems : a practical approach (chapter 3)
37Embedded LinuxLinux for embedded and real-time applications (chapters 7, 8)
38Embedded control system designEmbedded control system design : a model based approach (chapter 2)
39Embedded SecurityEmbedded systems security (chapters 1, 2)
40Power optimizationModern embedded computing: designing connected, pervasive, media-rich systems (chapter 9)
41Embedded graphicsModern embedded computing: designing connected, pervasive, media-rich systems (chapter 10)
42Determining Bounds on Execution TimesEmbedded Systems Design and Verification (chapter 9)
43Processor Architecture Description LanguagesEmbedded Systems Design and Verification (chapter 7)
44FPGA Synthesis and DesignEmbedded Systems Design and Verification (chapter 17)



Student Talk Schedule

The student talks take place Tuesdays at 9:00 at the following planned days (depending on the number of participants) in room HU210. The table lists the numbers of topics given above in the list. Re-scheduling may happen depending on available days.

30.04.HU2101 2 3 4 5 6
07.05.HU2107 8 9 10 11 44
14.05.HU21013 14 15 16 17 18
28.05.HU21019 20 22 23 24 25
04.06.HU21021 26 27 28 29 30
11.06.HU21031 32 33 34 35 36
18.06.HU21037 38 39 40 41 42



Written Exam

The written exam takes place Monday, July 29 from 12:00 until 13:30 in room HU-Hs. Participants may bring one A4 sheet with their own hand-written lecture notes (one side only, not printed or copied). Other than that, there are no documents allowed. Cell phones or any other communication devices must not be used and have to stay switched off. Please bring your student ID card as well as a photo ID.



Course reserve collection in the TU Ilmenau library - books for the course that cannot be borrowed but have to be read in the library. The following books will be available during the semester:

  • Marilyn Wolf: Computers as Components (chapter numbering based on 3rd edition 2012, but there are newer editions in the library)
  • Alan Burns and Andy Wellings: Real-time systems and programming languages (Addison-Wesley 2001)
  • Jane Liu: Real-Time Systems (Prentice Hall 2000)
  • Jim E. Cooling: Software engineering for real-time systems (Addison-Wesley 2001)

In-depth material about Arduino and C programming by Jim Fiore:

Further comments in the lecture.