Difference between revisions of "PA 8001 Ed 2014"
Line 128: | Line 128: | ||
+ | Resources for C Programming: | ||
+ | * [http://www.eskimo.com/~scs/cclass/notes/top.html C Programming Notes] | ||
=== Recommended Text === | === Recommended Text === |
Revision as of 00:55, 9 September 2014
Embedded Systems Programming - Edition 2014
Contact
Lecturer
- Office: E 305
- Telephone 035 16 71 22
- Email: [m.r.mousavi@hh.se]
Lab Instructors
- 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
Course Material and Resources
Slides and Handouts
Lecture | Handouts / Slides | Notes | Recommended Reading |
---|---|---|---|
Lecture 1: Introduction | Handouts Slides | A Raspberry-Pi Intro Clip. | |
Lecture 2: Memory-Mapped I/O | |||
Lecture 3: Concurrency (Motivation and Mutual Exclusion) | |||
Lecture 4: Concurrency (Context Switch) | |||
Lecture 5: Reactivity (Reactive Objects) | |||
Lecture 6: Reactivity (Synchrony and Asynchrony) | |||
Lecture 7: Real Time (Periodic Tasks) | |||
Lecture 8: Real Time (Deadlines) | |||
Lecture 9: Real Time (Schedulability) | |||
Lecture 10: Java Programming for Android (Basics) | |||
Lecture 11: Java Programming for Android (UI and Concurrency) | |||
Lecture 12: Java Programming for Android (Communication and Services) |
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 Raspberry PI | PA_8001_2014_Practical_0 | September 19, 2014 20:00 | |
Practical 1: Concurrency: Manual Interleaving | September 26, 2014 20:00 | ||
Practical 2: Scheduling and Concurrency | October 3, 2014 20:00 | ||
Practical 3: Android Programming: Fundamentals | October 10, 2014 20:00 | ||
Practical 4: Android Programming: Networking and Communication | October 24, 2014 20:00 |
Extra Practicals
For students requiring assistance in programming skills, extra practicals are organized on Wednesdays.
Practical | Description | Deadline | Notes |
---|---|---|---|
Extra Practical 0: C programming: Linked Lists | PA_8001_2014_Extra_Practical_0 | September 19, 2014 20:00 |
Resources for C Programming:
Recommended Text
We will occasionally use / refer to parts of the following book:
James W. Grenning, Test-Driven Development for Embedded C, The Pragmatic Bookshelf, 2010.
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.
Raspberry PI
For the first half of the course, we will use the Raspberry PI 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 Raspberry PI and have a lot of fun, you can buy a Raspberry PI B+ board (e.g., from [1], which usually includes also a Micro SD card). You need to buy/have your own micro USB adapter. In order to use a computer display you need an HDMI cable or a converter to the appropriate input for your display monitor.
Acknowledgement
The course 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.