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.
Credits
- 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.
Contents
Introduction to Embedded Systems Design (see "Lectures" below for a more specific list of topics after logging in to the web site)
News
- 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.
Organization
- 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
# | Topic | Literature |
---|---|---|
01 | Aperiodic task scheduling | Hard Real-time computing systems Chapter 3 |
02 | Power-Aware Resource Management | Handbook of Real-Time and Embedded Systems Chapter 6 |
03 | Overload management | Soft Real-Time Systems, Chapter 2 |
04 | C for embedded systems | Programming Embedded Systems in C and C++ |
05 | Ada for embedded systems | Real-Time Systems and Programming Languages, Ada resources |
06 | Programming language choice | Software Engineering for Real-Time Systems, Chapter 9.4 |
07 | Low-level programming | Real-Time Systems and Programming Languages Chapter 15, Computers as Components Chapter 3.2 |
08 | Real-time facilities in programming languages | Real-Time Systems and Programming Languages Chapter 12 |
09 | Software fault tolerance | Real-Time Systems and Programming Languages Chapter 5 |
10 | Exception handling | Real-Time Systems and Programming Languages Chapter 6 |
11 | Concurrent programming | Real-Time Systems and Programming Languages Chapter 7 |
12 | Shared-variable based synchronization and communication | Real-Time Systems and Programming Languages Chapter 8 |
13 | Message-based synchronization and communication | Real-Time Systems and Programming Languages Chapter 9 |
14 | Real-Time Kernel Design | Hard Real-time computing systems Chapter 9 |
15 | Static analysis of embedded systems | Software Engineering for Real-Time Systems, Chapter 11.2 |
16 | Dynamic analysis of embedded systems | Software Engineering for Real-Time Systems, Chapter 11.4 |
17 | Embedded Systems Debugging Techniques | Software Engineering for Real-Time Systems, Chapters 12.2-12.8 |
18 | Compilation techniques | Computers as Components Chapter 5.5 |
19 | An embedded system design example | Computers as Components Chapter 1.4 |
20 | The ARM embedded processor | Computers as Components Chapter 2.3 |
21 | Memory Management | Computers as Components Chapter 3.5 |
22 | CPU bus systems | Computers as Components Chapter 4.3 |
23 | Performance analysis | Computers as Components Chapter 4.7 |
24 | Embedded networks | Computers as Components Chapter 8 |
25 | The Time-Triggered Protocol | Real-Time Systems (Kopetz) Chapter 8 |
26 | Overview of Wireless Sensor Networks | Networked Embedded Systems Chapter 3 |
27 | Wireless Sensor Network Architectures | Networked Embedded Systems Chapter 4 |
28 | Routing Techniques for Wireless Sensor Networks | Networked Embedded Systems Chapter 7 |
29 | Trends in Automotive Communication Systems | Networked Embedded Systems Chapter 13 |
30 | CAN - controller area network | Networked Embedded Systems Chapter 14 |
31 | FlexRay Bus | Networked Embedded Systems Chapter 15 |
32 | LIN Bus | Networked Embedded Systems Chapter 16 |
33 | Reconfigurable Computing | Reconfigurable computing systems engineering (chapters 1-3) |
34 | Embedded safety-critical systems | Embedded software development for safety-critical systems (chapters 10, 16, 17) |
35 | Real-Time C++ programming | Real-time C++ : efficient object-oriented and template microcontroller programming (select from chapters 4, 5, 7) |
36 | Multicore embedded systems | Real world multicore embedded systems : a practical approach (chapter 3) |
37 | Embedded Linux | Linux for embedded and real-time applications (chapters 7, 8) |
38 | Embedded control system design | Embedded control system design : a model based approach (chapter 2) |
39 | Embedded Security | Embedded systems security (chapters 1, 2) |
40 | Power optimization | Modern embedded computing: designing connected, pervasive, media-rich systems (chapter 9) |
41 | Embedded graphics | Modern embedded computing: designing connected, pervasive, media-rich systems (chapter 10) |
42 | Determining Bounds on Execution Times | Embedded Systems Design and Verification (chapter 9) |
43 | Processor Architecture Description Languages | Embedded Systems Design and Verification (chapter 7) |
44 | FPGA Synthesis and Design | Embedded 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.
Day | Room | Talks |
30.04. | HU210 | 1 2 3 4 5 6 |
07.05. | HU210 | 7 8 9 10 11 44 |
14.05. | HU210 | 13 14 15 16 17 18 |
28.05. | HU210 | 19 20 22 23 24 25 |
04.06. | HU210 | 21 26 27 28 29 30 |
11.06. | HU210 | 31 32 33 34 35 36 |
18.06. | HU210 | 37 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.
Literature
Textbooks
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:
- Description of the Arduino architecture, Atmel microcontroller, and C programming (local copy)
- Sample problems for C- and Arduino-specific issues (local copy)
Further comments in the lecture.