D0003E: Real-time Systems
Spring 2012
Old
web page from 2011
News
News and updates will always be announced here, with latest news on
topmost row:
| 2012-02-10 | Reference to the TinyTimber kernel and documentation for lab 4 is updated. |
| 2012-02-07 | Lecture 6 is updated. |
| 2012-02-01 | The lab deadlines had dissapeared because of a mental race condition. It is now fixed. |
| 2012-01-31 | Ändrad sal på torsdag också (luleå): A211. |
| 2012-01-30 | Ändrad sal för imorgon! A117. (A109 har tydligen rämnat) |
| 2012-01-18 | Pawel
now have a bunch of programmers and butterfly-cards. If you like, you
can pass by his office and pick one up. Form lab groups of two persons. |
| 2012-01-18 | Extra material kompletternande föreläsning 2 finns nu. |
| 2012-01-17 | En lab pass 1 torsdag 19/1 är inbokad för luleå (se schemat). |
| 2012-01-16 | Lecture 1 slightly updated. |
| 2012-01-16 |
Webbsidan i 2012 års version! Tjohoooo! :-) Nyheter/uppdateringar anonseras här. |
Lab results:
Schedule
Schedule for luleå
Schedule for skellefteå
Lectures
Course aim
The aim of the course is to give
competence in the
development of real time systems in high level programming
languages,
to
discuss various models of synchronization and communication between
concurrent processes in such
systems, and to study the characteristics
of real time systems and their constructions. The central
concepts
of the
course are concurrency -
where programs are built using several concurrent threads of execution,
reactivity -
where external
input is
reacted to rather than requested, and real-time
- where the timing behavior of a reactive
system is also of interest.
Course content
Concurrent Programming:
- Model of abstraction based on encapsulated processes
- Models and methods for synchronization and communication
between concurrent processes
Reactive Programming:
- Event-driven program structures
- Interrupts and signal-handling
Real Time Systems:
- Priorities and deadline requirements
- Connections of external devices, embedded systems
- Process scheduling and error handling
- Design of a real time kernel
Course litterature
Alan Burns and Andy Wellings.
Real-Time
Systems
and
Programming
Languages.
Addison-Wesley, third edition, 2001.
ISBN: 0-201-72988-1.
Fouth edition is also perfectly usable.Examiner & lecturer
Fredrik Bengtsson
E-mail: bson@ltu.se
Office: A3308
Phone: 49 24 31
Lab supervisor
Pawel Pietrzak
E-mail: pawel.pietrzak@ltu.se
Lab assignments
Rules
(Must read!)
It is very easy to get started with the new equipment. Just connect the
AVR JTAG ICE programmer to the computer by USB and to the butterfly
board with the flat cable. Programming is performed in "AVR Studio".
You will probably need to select programming device from the dialog
found in the menu "debug->select platform and device". AVR studio
might ask you if tou want to update the firmware of the
jtag-programmer. Select that you do want to update the firmware if
asked. Be sure to work in your home directory and not on the local
computer.
Lab 1:
C
programming
on
bare
metal
|
deadline 26/1 |
Lab 2:
A lightweight
multi-threading kernel
|
deadline 6/2 |
Lab 3:
A
threaded
reformulation
of
lab
1
|
deadline 17/2 |
Lab 4:
Dual pulse
generators with a GUI
|
deadline 24/2 |
Lab 5:
Traffic
light
control
and
simulation
|
deadline 9/3 |
Extra:
Lab
6:
Commanding a robot
You will get 5% of total exam points added to your result on the exam.
|
deadline before exam |
Target platform documentation
The
AVR
Butterfly
User's
Guide describes the features of the platform (an
evaluation kit) in overall terms.
The
ATmega169
datasheet gives detailed
information about the microcontroller that powers the Butterfly board.
The
AVR
instruction set explains the
assembly language instructions that the ATmega169 uses.
The
AVR065
application
note provides details
about the LCD driver on the Butterfly board.
The
ATmega32
datasheet gives detailed
information about the microcontroller that powers the miniature robots.
The
AVR-P40-USB
notes provide an
overview of the development circuit board on the miniature robots.
Target platform resources
Lawicel, online supplier
of AVR Butterfly cards.
Software
Crew, another AVR Butterfly supplier.
Smiley Micros, USA-based
supplier of AVR material.
WinAVR, open
source C cross-compiler, libraries and download utilities (for Windows).
AVR
Studio, optional AVR integrated development environment for Windows
that installs on top of WinAVR.
Darwinports avr-gcc, open
source C cross-compiler, libraries and download utilities (MacOS X)
AVR freaks, miscellaneous
AVR-related info.
Links to related information
Dave Marshall, Programming
in C
Steve Holmes, C
Programming
Steve Summit, C
Programming Notes
Marshall Brain, How
C Programming Works
Lee Tauck, C
Tutorial
Mikael Sundström, Some
C-tricks and
Tips for Real-time Programming
Java
and
C
Comparison
Chart
The
POSIX specification
POSIX in
realtime
UnixWare
7 online manual pages
ANSI terminal
control codes
Cygwin documentation
Ariane
5
Launch
Failure
Apollo
11
Program
Alarms
Mars
Pathfinder
Priority
Inversion
Therac-25
Accidents