Programming Embedded Systems at BTH (2006)
This course will be held at Blekinge Tekniska Högskola.
Prof. Dr. habil. Andreas Polze, Hasso-Plattner-Institute
Dipl.Inf. Andreas Rasche, Hasso-Plattner-Institute
In context of the Erasmus/Sokrates cooperation between the Hasso Plattner Institute for Software Engineering in Postdam and the Blekinge Institute of Technology, we are announcing our mini-course on "Programming Embedded Systems". The course will be comprised of two units: a lecture series in early October and a series of hands-on labs in later October. Both units will be held at Blekinge Tekniska Högskola. The lab assignments will access the "Distributed Control Lab", a testbed infrastructure at HPI over the internet.
The lecture series (12 hours) will be given from October 3, 2006 to October 6, 2006. Additional labs and consultations will take place on October 10 and 18. Successful attendees of both, lectures and labs will earn a total of 3 ETCS credit points.
The mini-course can be taken in combination with the Embedded Systems (DVB018). Successful completion of the "Programming Embedded Systems" course will result in a bonus in the DVB018 final exam.
Prospective attendees may also want to consider combining the mini-course on "Programming Embedded Systems" with another mini-course on Windows operating system architecture to be given by Prof. Dr. Andreas Polze in spring 2007. Both mini-courses will earn a total of 7.5 ETCS credit points.
Course Description:Programming embedded control software has to address a number of issues, which are less important in classical desktop settings. These issues include predictable (real-time) timing behaviour, resource (memory and network) usage, support for predictable communication protocols, power consumption, user-interface design (support for headless operation), system configuration, and programming languages and models. In addition non-functional properties such as security and fault-tolerance must be addressed during software development.
Within the course state-of-art programming models, languages and operating systems will be presented and practically demonstrated at the Distributed Control Lab (DCL). The DCL is a remote laboratory operated at the Hasso-Plattner-Institute at University of Potsdam, Germany. The Lab provides remote access to real-time control experiments, which will be used for accompanying practical exercises, that teaches the above-mentioned aspects of embedded systems programming based on a number of case studies
Course Schedule & Location:The course will be held in week 40, 2006. More information about time and location can be found here.
Course Content:Unit 1 - Introduction (1h) (pdf) (pdf)
- Programming embedded systems overview
- Introduction into real-time systems
- Processor architecture and worst case execution times
- Performance measurements
- Misconceptions of real-time computing
- Real-time system examples
- Task model, Schedulability
- Real-Time Uniprocessor Scheduling
- Priority Inversion Avoidance
- What really happened on mars ?
- Classical memory management techniques (paging, segmentation, virtual memory)
- Memory locking / pinning
- Real-time algorithms for dynamic memory allocation
- Memory access / memory architectures
- Model for real-time communication
- Performance characteristics of RT-communication protocols
- Network topologies
- Media access - VTCSMA, Window Protocol, token-based protocols, hierarchical round robin Field busses, CAN
- Introduction to Ada (pdf)
- Real-time Java (Real-Time Extensions for the Java Language) (pdf)
- Real-time .Net (GCC-IL Frontend at HPI) (pdf)
Information about the Distributed Control Lab:
- Homepage of the Distributed Control Lab
- Movie: Overview of the DCL (18MB)
- Higher Striker Experiment (14MB)
- Foucault's Pendulum (32MB)
- Industrial Control in the DCL (65MB)
Labs:There will be an additional lecture about the Distributed Control Lab on 10.10 (Tuesday) from 1.15 - 2.45 p.m. in Onyxen .
The lab will be held on Wednesday, 18.Oct. - 1 p.m. - 5 p.m. We meet at 1.p.m in COMPANY (R-6427).
We will meet again on Wednesday, 25.Oct. at 1 p.m. in COMPANY. Please prepare for a short examination about the experiment!
Lab 1 - Introduction to the Distributed Control Lab
Literature:(1) Real-Time Systems - Hermann Kopetz, Kluwer Academic Publishers
(2) Real-Time Systems - Jane W.S. Liu
(3) Embedded Software Development with eCos - Anthony J. Massa
(4) Programming Microsoft Windows CE .NET, Third Edition - Douglas Boling
(5) Real-Time Systems C.M. Krishna and G. Shin
(6) Computers as Components - Principles of Embedded Computing System Design - Wayne Wolf, Morgan Kaufmann Publishers 2001, ISBN 1-55860-693-9
(7) An Embedded Software Primer - David E. Simon, Addison-Wesley 1999, ISBN 0-201-61569-X
(8) Programming Embedded Systems in C and C++ - Michael Barr, O'Reily 1999, ISBN 1-56592-354-5
(9) Real-Time Concepts for Embedded Systems - Qing Li, CMPBooks 2003, ISBN 1-57820-124-1
(10) Operating Systems Design and Implementation (The Minix Book) - Andrew S. Tannenbaum, Albert S. Woodhull, Prentice Hall, ISBN 0-13-142938-8