. In case your group won't be able to finish the project by next week, please get in contact with the course teachers.
This course in VT 2012 provides a background on programming for embedded systems and microcontrollers. The course focusses on software aspects and introduces, in particular, real-time operating systems (RTOS) and a variety of low- and high-level programming languages common for embedded systems. The course runs through the whole spring 2012 and consists of
The course consists of the following parts:
| Part | Credits | Grading |
|---|---|---|
| Assignments + lab | 3 | U, G (pass/fail) |
| Project | 4 | U, G (pass/fail) |
| Theory + exam | 3 | U, 3, 4, 5 |
To pass the course, better than "U" must be achieved in each component.
The overall course grade of a student is derived from the performance in the project and in the exam. To this end, we will internally mark the work of each project group (considering the solution and presentation) in the "U, 3, 4, 5" scheme. The overall grade of a student is computed as the (un-weighted) average of the exam and the internal project grade, rounding upwards.
| Lecture | Time, place | Lecturer | Material | |
|---|---|---|---|---|
| 1 | Introduction to the course | Jan 16, 13:15, Pol_1245 | PR | Course overview , C recap |
| 2 | FreeRTOS by example | Jan 18, 10:15, Pol_1212 | PR | Project template , Examples , CMSIS , STM32F10x reference manual , STM32F10x programming manual |
| 3 | I/O, communication, synchronisation | Jan 23, 13:15, Pol_1245 | PR | Examples |
| 4 | Communication, timers, PWM | Jan 25, 13:15, Pol_1146 | PR | Examples |
| 5 | CANCELLED | Jan 31, 10:15, Pol_1145 | CANCELLED | |
| 6 | Timers, interrupts, multi-tasking | Feb 1, 13:15, Pol_1245 | PR | Slides , PWM example , interrupt examples |
| 7 | Handling of real-valued data | Feb 6, 8:15, Pol_1145 | PR | Slides on multi-tasking , Arithmetic , examples |
| 8 | Arithmetic, testing | Feb 8, 13:15, Pol_1245 | PR | Slides on intervals , slides on testing |
| 9 | Fault tolerance | Feb 13, 15:15, Pol_1212 | PR | Slides on testing , slides on fault tolerance , watchdog example |
| 10 | An intro to Lustre | Feb 15, 13:15, Pol_1245 | PR | Exercise in memory fault injection (not to be handed in, solutions are included), Slides on Lustre , Lustre examples (including HTML tracers ) |
| 11 | Lustre verification | Feb 20, 13:15, Pol_1245 | PR | Slides on Lustre verification , Lustre examples (including HTML tracers ) |
| 12 | An intro to Real-Time Java | Feb 22, 13:15, Pol_1245 | PR | Slides on real-time Java , lecture examples
|
| 13 | Memory management; more on Real-Time Java | Feb 27, 13:15, Pol_1145 | PR | Slides on memory management , RTSJ example with scoped memory |
| 14 | RTSJ example, wrap-up elevator lab | Feb 29, 13:15, Pol_1245 | PR | Merge-sort example in RTSJ |
| 15 | Principles of RT OS | Mar 5, 15:15, Pol_1245 | KL | Principles of RT OS (Part 1 ), Principles of RT OS (Part 2 ) |
| 16 | RT-Linux: RTAI | Mar 7, 13:15, Pol_1245 | KL | RT-Linux: RTAI (Part 1 ), RT-Linux: RTAI (Part 2 ) |
| (no lecture) | Mar 12, 13:15, Pol_1245 | |||
| (no lecture) | Mar 15, 13:15, Pol_1245 | |||
| 17 | Start of the project; solutions assignment 6 | Mar 21, 13:15 - 15:00, Pol_1311 | PR | Slides about project , more information |
Assignments are done by students individually.
Several students handing in the same assignment solution will be considered as cheating, and reported accordingly.
Each assignment solution will be corrected by us, and given a grade between 0 points and 20 points.
To pass the course, it is necessary to achieve at least 12 points in at least 4 of the 6 assignments.
| Topic | Deadline | ||
|---|---|---|---|
| 1 | Basic C and FreeRTOS programming |
Jan 27th, 8:15 | Solutions |
| 2 | Peripherals, concurrency |
Feb 2nd, 10:15 | Solutions |
| 3 | Interrupts, scheduling, arithmetic |
Feb 17th, 8:15 | Solutions |
| 4 | Testing |
Feb 23rd, 10:15 | Solutions |
| 5 | Lustre and Real-time Java |
Mar 2nd, 10:15 | Solutions |
| 6 | ADC and PID controllers |
Mar 19th, 13:15 | Solutions |
Solutions to the assignments are to be submitted via email to Othmane Rezine
.
The exercise sessions are used to discuss solutions for the home assignments. Apart from this, no new material is presented during the exercises.
| Time, place | |
|---|---|
| Discussion of assignment 1 | Jan 27, 8:15 - 10:00, Pol_1245 |
| Discussion of assignment 2 | Feb 2, 10:15 - 12:00, Pol_1245 |
| Discussion of assignment 3 | Feb 17, 8:15 - 10:00, Pol_1245 |
| Discussion of assignment 4 | Feb 23, 10:15 - 12:00, Pol_1245 |
| Discussion of assignment 5 | Mar 2, 10:15 - 12:00, Pol_1245 |
| Discussion of assignment 6 | Mar 21, 13:15 - 15:00, Pol_1311 |
, David E. Simon, Addison-Wesley, 1999
, Giorgio Buttazzo, Springer, 2005
, Richard Barry, generic CORTEX M3 editionPlease note that a forum for the course has been set up at Studentportalen (you have to log in to access the forum).
Please use this forum for course-related questions whenever possible, instead of mailing any of the teachers directly.