PA 8001 Ed 2013
Contents
Embedded Systems Programming - Edition 2013
Contact
Lecturer
- Office: E 305
- Telephone 035 16 71 22
- Email: [m.r.mousavi@hh.se]
Lab Instructor
- Office: E 309
- Telephone 035 16 73 27
- Email: [essayas.gebrewahid@hh.se]
Objectives
On completion of the course students will be able to
- program embedded applications
- understand and use a kernel to support concurrency, real-time and reactivity
- design, structure and analyze programs for embedded systems
- explain different mechanisms for communication and synchronization between processes
- explain characteristics of real-time systems and constructions to deal with them in programs
- compare, select and apply programming language constructs designed for concurrency and real-time
Assessment
Taking part in the lab is mandatory and one cannot pass the course without doing the practicals. In addition, there will be a final written examination. During the lectures, some bonus questions will be asked, each of which will contribute 0.1 mark to the final mark (can come in handy when rounding up).
Past Examinations
Examination Date | Questions | Answers |
---|---|---|
April 2012 | Questions | Answers |
August 2012 | Questions | Answers |
November 2013 | Questions | Answers |
Assessment Guide
Model Examination (with Solutions)
Course Material and Resources
Slides and Handouts
Lecture | Slides / Handouts | Notes | Recommended Reading |
---|---|---|---|
Lecture 1: Introduction | Slides Handouts | Note the bonus question in the slides | Chapter 1 |
Lecture 2: Memory-Mapped I/O | Slides Handouts | Chapter 15 | |
Lecture 3: Concurrency (Motivation and Mutual Exclusion) | Slides Handouts | Note the bonus question in the slides | Chapter 7 |
Lecture 4: Concurrency (Context Switch) | Slides Handouts | Chapter 8 | |
Lecture 5: Reactivity (Reactive Objects) | Slides Handouts | Tiny Timber Documentation | |
Lecture 6: Reactivity (Synchrony and Asynchrony) | Slides Handouts | Tiny Timber Kernel | Chapter 9 |
Lecture 7: Real Time (Periodic Tasks) | Slides Handouts | Note the bonus question in the slides | Chapter 12 |
Lecture 8: Real Time (Deadlines) | Slides Handouts | Chapter 13 | |
Lecture 9: Real Time (Schedulability) | Slides Handouts | Notes on the proof of Liu and Layland's theorem | Liu and Layland paper |
Lecture 10: Java Programming for Android (Basics) | Slides Handouts | ||
Lecture 11: Java Programming for Android (UI and Concurrency) | Slides Handouts | ||
Lecture 12: Java Programming for Android (Communication and Services) | Slides Handouts | Step-by-step guide to the echo application |
Practical Descriptions
Please note that the solutions to the practical have to be submitted via blackboard before the deadline.
Practical | Description | Deadline | Notes |
---|---|---|---|
Practical 0: Introduction to C and AVR-Butterfly | Description of Practical 0 | September 10, 08:00AM | Please note the Instructions (Section 2)
on how to submit. |
Practical 1: Introduction to Concurrency | Description of Practical 1 | September 23, 08:00AM | |
Practical 2: Scheduling and Mutual Exclusion | Description of Practical 2 | September 26, 12:00AM | |
Practical 3: Reactive Objects and Real Time | Description of Practical 3 | October 7, 08:00AM | |
Practical 4: Android Programming (Fundamentals) | Description of Practical 4 | October 14, 08:00AM | |
Practical 5: Group Communication on Android | Description of Practical 5 | October 28, 08:00AM |
Recommended Text
We will occasionally use / refer to parts of the following book:
Alan Burns and Andy Wellings, Real-Time Systems and Programming Languages (4th Ed.), Addison Wesley, 2009.
The book is an optional resource for the course. If you want to have your own copy, you can order it, for example, from Amazon.
AVR Butterfly
For the first half of the course, we will use the AVR Butterfly board. The boards will be provided at the lab and you will have access to the lab even outside lab hours. However, if you would like to have your own AVR Butterfly, you need the board (e.g., from Atmel Webshop) and the AVT ISP MKII connector (e.g., from Atmel Webshop).
Acknowledgement
The present edition is based on the earlier editions of the course given by Veronica Gaspes. Also, the material provided by Johan Nordlander has been essential in the set up of this course.