Professional Documents
Culture Documents
Lecture 1
Introduction to the course
Monday Jan 16, 2012
Philipp Rmmer
Uppsala University
Philipp.Ruemmer@it.uu.se
1/41
Lecture outline
Organisation
Teachers
2/41
At UU since 2011,
research assistant in
embedded systems group
Main background:
formal methods, verification
In this course: lectures
http://www.philipp.ruemmer.org
Philipp.Ruemmer@it.uu.se
3/41
At UU since 2012,
lecturer in embedded
systems group
In this course:
lectures + exercises +
labs
http://www.it.uu.se/katalog/kaila126
kai.lampka@it.uu.se
4/41
http://www.it.uu.se/katalog/othre279
othmane.rezine@it.uu.se
5/41
Course topics
6/41
Computer systems
integrated into a
larger device
Hardware + software
tailored to a particular
purpose
About 99% of all
computers are
embedded
Pervasive:
Cell phones, cameras, trains,
airplanes, traffic lights,
home appliances, robots,
industrial machines, etc.
7/41
8/41
Reliability
9/41
Course location:
hardware/software co-design
Embedded systems require
hardware and software
to be designed simultaneously:
Abstract system
specification/
model
Hardware
design
System
Co-design
Software
design
This course
Course covering (more) co-design:
Microcontroller Programming, Uwe Zimmermann
10/41
Keil/ARM Vision
12/41
Multi-tasking, scheduling,
task pre-emption, deadlines
Interrupt handling
13/41
C API
Pre-emptive/cooperative multi-tasking,
co-routines
Fixed-priority scheduler
14/41
FreeRTOS (2)
15/41
Real-time Linux
16/41
Interrupt handling
Accessing ports,
devices like sensors, actuators, buses
Memory management
Synchronisation,
inter-task communication
17/41
Which language
to write embedded
software in?
Traditional:
low-level languages,C
Trends:
high-level,
declarative,
model-based,
component-based
languages
Simulink
18/41
Low-level programming
19/41
Scoped memory
(garbage collectors are difficult in realtime systems)
Built-in real-time primitives
21/41
Graphical languages
Matlab/Simulink, SCADE/Lustre
Mostly done in course
Model-based design of embedded
software, Bengt Jonsson
22/41
Determinism, predictability
Course location:
considered hardware
tailor-made hardware,
signal processors, ...
8-bit micro-controllers
(e.g., 8051, AVR, 1KiB RAM)
Digital electronics
design with VHDL
Microcontroller
Programming,
Lars Ericsson
larger micro-controllers
(e.g., ARM, PIC32, 1MiB RAM)
This course
general-purpose processors
(e.g,. x86, PowerPC)
24/41
Course location:
software architectures
no operating system,
simple control loop
Microcontroller
Programming,
Lars Ericsson
dedicated RTOS
(e.g., LynxOS, VxWorks,
Windows CE)
POSIX 1003.1b
(standard for real-time OSs)
generic OS extended for RT
(e.g., RT-Linux)
generic OS
(e.g., Unix, Windows)
This course
Operating systems
courses
25/41
Course location:
programming languages
assembler
C (+ extensions)
real-time languages
(e.g., Ada, Real-time Java)
Microcontroller
Programming,
Uwe Zimmermann
This course
synchronous languages
(e.g., Esterel, Lustre, Signal)
data-flow languages
(e.g., Lustre, Simulink, Modelica)
Model-based design
of embedded
software,
Bengt Jonsson
26/41
Organisation
of the course
27/41
Part 2
period 4, week 12-21
Embedded systems project (4hp)
Exam: May 25th (3hp)
28/41
Lectures
Exercises
Assignments
Lab
Lab (2)
Project (period 4)
Exam
th
May 25
Graded U, 3, 4, 5
Course grade
Project grade
(groups, 3, 4, 5)
Exam grade
(individual, 3, 4, 5)
Average
(rounding upward)
Individual
overall course grade
(3, 4, 5)
36/41
What remains
37/41
Further information
Course page:
http://www.it.uu.se/edu/course/homepage/pins/vt12
Further reading
Next lecture
4SPC
40/41
Questionnaire
Recap of C programming
41/41