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.
Day Date Time Location
Tuesday 3.OCT 13:00-17:00 Onyxen
Wednesday 4.OCT 13:00-17:00 Onyxen
Thursday 5.OCT 13:00-15:00 Ametisten
Friday 6.OCT 13:00-15:00 Onyxen

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
Unit 2 - Scheduling(2h) (pdf)
  • Task model, Schedulability
  • Real-Time Uniprocessor Scheduling
  • Priority Inversion Avoidance
  • What really happened on mars ?
Unit 3 - Memory Management (2h) (pdf)
  • Classical memory management techniques (paging, segmentation, virtual memory)
  • Memory locking / pinning
  • Real-time algorithms for dynamic memory allocation
  • Memory access / memory architectures
Unit 6 - Real-time Communication (1h) (pdf)
  • 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
Unit 5 - Languages for Programming Real-Time Systems(4h)
  • Introduction to Ada (pdf)
  • Real-time Java (Real-Time Extensions for the Java Language) (pdf)
  • Real-time .Net (GCC-IL Frontend at HPI) (pdf)
Unit 6 - Embedded Operating Systems (2h)
  • Real-time Linux (pdf)
  • Windows Ce.Net (pdf

Information about the Distributed Control Lab:


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
  • Get an account for the DCL (send a mail)
  • Set-up a VPN-Connection to the lab
  • Enter the DCL at
  • Select the Lego Mindstorm Simulator Experiment
  • Study and try the provided sample code
  • Implement an algorithm that "writes" an 8 on the ground
Lab 2 - The Higher Striker Experiment


(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 
created by Andreas Rasche