0% found this document useful (0 votes)
258 views41 pages

01 Overview PDF

This document provides an overview of an introductory lecture on programming embedded systems. It outlines the course topics which include operating systems, programming languages, development processes, and reliability techniques for embedded systems. It also describes the course structure which consists of lectures, assignments, a lab project, and an exam. The main operating system covered is FreeRTOS and the primary programming language is C.

Uploaded by

Damian Primo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
258 views41 pages

01 Overview PDF

This document provides an overview of an introductory lecture on programming embedded systems. It outlines the course topics which include operating systems, programming languages, development processes, and reliability techniques for embedded systems. It also describes the course structure which consists of lectures, assignments, a lab project, and an exam. The main operating system covered is FreeRTOS and the primary programming language is C.

Uploaded by

Damian Primo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Programming Embedded Systems

Lecture 1
Introduction to the course
Monday Jan 16, 2012

Philipp Rmmer
Uppsala University
[email protected]
1/41

Lecture outline

Organisation

Teachers

Lectures, exercises, labs, project

Topics + focus of the course

Recap of the C language

2/41

About myself (Philipp Rmmer)

At UU since 2011,
research assistant in
embedded systems group
Main background:
formal methods, verification
In this course: lectures

http://www.philipp.ruemmer.org
[email protected]

3/41

About Kai Lampka

At UU since 2012,
lecturer in embedded
systems group
In this course:
lectures + exercises +
labs

http://www.it.uu.se/katalog/kaila126
[email protected]

4/41

About Othmane Rezine

PhD student in verification


group
Will take care of
exercises + labs

http://www.it.uu.se/katalog/othre279
[email protected]

5/41

Course topics

6/41

Recap: Embedded Systems

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

Embedded systems (2)

System: hardware + software

Often constrained in various ways:

Timing (real-time requirements)


Severely limited resources:
weight, power, memory,
computation power
Have to be cost-effective

8/41

Reliability

Embedded systems are often


complex and safety-critical
Millions LOC
Failures might be fatal
How to ensure reliability?
(Recurring topic in this course)
Connected to various research areas:
e.g., verification, testing

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

Topic 1: Practical stuff

Development for embedded systems:


hardware features,
programming,
testing, debugging,
simulation
Mainly considered:
ARM CORTEX M3
IDE + compiler:
Keil/ARM Vision
11/41

Keil/ARM Vision

Installed on Windows lab computers


(in 1313)
If you want to use your own computer:
evaluation licence from
http://www.keil.com/uvision/
(sufficient for this course)

12/41

Topic 2: Operating Systems

OS simplifies development of systems:

Multi-tasking, scheduling,
task pre-emption, deadlines

Synchronisation, shared resources

Drivers for communication, periphery

Interrupt handling

Large variety of OSs common for


embedded systems

e.g, LynxOS, VxWorks, Windows CE, RT-Linux,


FreeRTOS, ECOS, OSE, QNX, Integrity,

13/41

Main OS used here: FreeRTOS

Small industrial OS,


open-source (GPL)

C API

Satisfies hard real-time requirements

Pre-emptive/cooperative multi-tasking,
co-routines

Fixed-priority scheduler

Platforms: ARM, x86, Freescale, ...


http://www.freertos.org/

14/41

FreeRTOS (2)

Will be introduced in lectures,


used for assignments + labs + project
Supporting book:
Richard Barry, Using the FreeRTOS
Real Time Kernel - a Practical Guide

15/41

Real-time Linux

Larger, more powerful OS

Introduced towards end of period 3

16/41

Related course topics

Interrupt handling
Accessing ports,
devices like sensors, actuators, buses
Memory management
Synchronisation,
inter-task communication

17/41

Topic 3: programming lang.

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

Most of the course will be based on C


Knowledge of C programming is needed
for the course
We will give some recap and exercises
in the beginning of the course

19/41

Lustre, synchronous prog.

Lustre, Esterel, Signal


Execution governed by a global clock,
static scheduling
Determinism is guaranteed
(despite concurrency)
Sometimes also
used for
modelling/prototyping
20/41

High-level imperative lang.

Real-time Java, Ada 95

High-level heap model

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

Topic 4: correctness + reliability

Requirements, safety properties


Correctness:
simulation, testing, debugging,
verification

Fault tolerance, redundancy

Determinism, predictability

Pitfalls with arithmetic datatypes


(floating-point, fixed-point)
23/41

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

Main structure of the course


Part 1
period 3, week 3-11
15 lectures ()
6 assignments, 1 lab (3hp)
Main topics:
operating systems, programming languages, development,
debugging, testing, technology for embedded systems

Part 2
period 4, week 12-21
Embedded systems project (4hp)
Exam: May 25th (3hp)
28/41

Lectures

Normally 2 lectures per week,


2 hours each
Sometimes tutorial-style
(black-board + computer),
some more theoretic (slides)
Lecture material (slides, examples)
will be available on course page
http://www.it.uu.se/edu/course/homepage/pins/vt12
29/41

Exercises

Weekly, Thursdays or Fridays


(check webpage for exact time)
Mostly for discussing assignments +
general discussions
First exercise:
Friday Jan 27th, 8:15 10:00, 1245
(no exercise this week!)
30/41

Assignments

6 weekly assignments, solved by


students individually
Graded with points: 0 - 20
To pass an assignment,
12 points have to be reached
4 assignments have to be
handed in + passed
Assignment solutions are discussed in
exercises
31/41

Lab

Done in groups (2 people)


Various aspects of developing
an embedded system (elevator
system): specification, design,
implementation, testing
Running weeks 5 - 10
Done using simulator
no real embedded hardware

More infos later + on course page


32/41

Lab (2)

We will give lab support once a week


(starting week 5)
What you should do already now:

Choose your groups


Sign up for groups on
studentportalen.uu.se

More infos later + on course page


33/41

Project (period 4)

Larger groups (3-4 people)

Use of actual embedded hardware

Project results will


by graded U, 3, 4, 5
( part of overall
course grade later)
More details later
34/41

Exam
th

May 25

Graded U, 3, 4, 5

Will be short (probably 2 hours)

Not all topics from the course will be


relevant for exam (since some are
tested in assignments + project)
Precise list of relevant topics will
be made available on course page
35/41

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

There is a forum for questions on


studentportalen.se

Always check the forum


before sending us an email!
38/41

Further reading

"An embedded software primer"


David E. Simon, Addison-Wesley, 1999
"Hard Real Time Computing
Systems - Predictable Scheduling
Algorithms and Applications"
Giorgio Buttazzo, Springer, 2005
"Using the FreeRTOS Real Time
Kernel - a Practical Guide"
Richard Barry, generic CORTEX M3 ed.
39/41

Next lecture
4SPC

Wednesday, Jan 18, 10:15, Pol_1245

Intro to fixed-priority scheduling

Intro + tutorial to FreeRTOS

40/41

Rest of this lecture

Questionnaire

Recap of C programming

41/41

You might also like