Top Banner
1/41 Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 Philipp Rümmer Uppsala University [email protected]
41

Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

Jul 22, 2018

Download

Documents

buithuan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

1/41

Programming Embedded Systems

Lecture 1Introduction to the course

Monday Jan 16, 2012

Philipp RümmerUppsala University

[email protected]

Page 2: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

2/41

Lecture outline

● Organisation● Teachers● Lectures, exercises, labs, project

● Topics + focus of the course

● Recap of the C language

Page 3: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

3/41

About myself (Philipp Rümmer)

● At UU since 2011,research assistant in embedded systems group

● Main background:formal methods, verification

● In this course: lectures

http://[email protected]

Page 4: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

4/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/[email protected]

Page 5: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

5/41

About Othmane Rezine

● PhD student in verification group

● Will take care ofexercises + labs

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

Page 6: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

6/41

Course topics

Page 7: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

7/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.

Page 8: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

8/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

Page 9: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

9/41

Reliability

● Embedded systems are oftencomplex 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

Page 10: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

10/41

Course location:hardware/software co-design

Abstract systemspecification/

modelCo-design

Hardwaredesign

Softwaredesign

System

Embedded systems requirehardware and softwareto be designed simultaneously:

This course

Course covering (more) co-design:Microcontroller Programming, Uwe Zimmermann

Page 11: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

11/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

Page 12: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

12/41

Keil/ARM µVision

● Installed on Windows lab computers(in 1313)

● If you want to use your own computer:evaluation licence fromhttp://www.keil.com/uvision/(sufficient for this course)

Page 13: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

13/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, …

Page 14: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

14/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/

Page 15: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

15/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”

Page 16: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

16/41

Real-time Linux

● Larger, more powerful OS● Introduced towards end of period 3

Page 17: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

17/41

Related course topics

● Interrupt handling● Accessing ports,

devices like sensors, actuators, buses● Memory management● Synchronisation,

inter-task communication

Page 18: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

18/41

Topic 3: programming lang.

● Which languageto write embeddedsoftware in?

● Traditional:low-level languages,C

● Trends: high-level, declarative, model-based, component-basedlanguages

C

Simulink

Page 19: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

19/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

Page 20: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

20/41

Lustre, synchronous prog.

● Lustre, Esterel, Signal● Execution governed by a global clock,

static scheduling● Determinism is guaranteed

(despite concurrency)● Sometimes also

used formodelling/prototyping

Page 21: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

21/41

High-level imperative lang.

● Real-time Java, Ada 95● High-level heap model● Scoped memory

(garbage collectors are difficult in real-time systems)

● Built-in real-time primitives

Page 22: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

22/41

Graphical languages

● Matlab/Simulink, SCADE/Lustre● Mostly done in course

“Model-based design of embedded software,” Bengt Jonsson

Page 23: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

23/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)

Page 24: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

24/41

Course location:considered hardware

8-bit micro-controllers(e.g., 8051, AVR, ≤1KiB RAM)

larger micro-controllers(e.g., ARM, PIC32, ≤1MiB RAM)

tailor-made hardware, signal processors, ...

general-purpose processors(e.g,. x86, PowerPC)

This course

Microcontroller Programming, Lars Ericsson

Digital electronics design with VHDL

Page 25: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

25/41

Course location:software architectures

no operating system, simple control loop

dedicated RTOS(e.g., LynxOS, VxWorks, Windows CE)

generic OS extended for RT(e.g., RT-Linux)

generic OS(e.g., Unix, Windows)

Microcontroller Programming, Lars Ericsson

This course

Operating systems courses

POSIX 1003.1b(standard for real-time OSs)

Page 26: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

26/41

Course location:programming languages

assembler

C (+ extensions)

real-time languages(e.g., Ada, Real-time Java)

data-flow languages(e.g., Lustre, Simulink, Modelica)

Microcontroller Programming,Uwe Zimmermann

This course

Model-based design of embedded software,Bengt Jonsson

synchronous languages(e.g., Esterel, Lustre, Signal)

Page 27: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

27/41

Organisationof the course

Page 28: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

28/41

Main structure of the course

Part 1period 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 2period 4, week 12-21

Embedded systems project (4hp)

Exam: May 25th (3hp)

Page 29: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

29/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 pagehttp://www.it.uu.se/edu/course/homepage/pins/vt12

Page 30: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

30/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!)

Page 31: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

31/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

Page 32: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

32/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

Page 33: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

33/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

Page 34: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

34/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 overallcourse grade later)

● More details later

Page 35: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

35/41

Exam

● May 25th

● 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

Page 36: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

36/41

Course grade

Project grade(groups, 3, 4, 5)

Exam grade(individual, 3, 4, 5)

Individualoverall course grade

(3, 4, 5)

Average(rounding upward)

Page 37: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

37/41

What remains

Page 38: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

38/41

Further information

● Course page:http://www.it.uu.se/edu/course/homepage/pins/vt12

● There is a forum for questions onstudentportalen.se

Always check the forumbefore sending us an email!

Page 39: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

39/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.

Page 40: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

40/41

Next lecture

● Wednesday, Jan 18, 10:15, Pol_1245● Intro to fixed-priority scheduling● Intro + tutorial to FreeRTOS

4SPC����

Page 41: Programming Embedded Systems - Uppsala University · Programming Embedded Systems Lecture 1 Introduction to the course Monday Jan 16, 2012 ... "An embedded software primer" David

41/41

Rest of this lecture

● Questionnaire● Recap of C programming