IL2212 Embedded Software 7.5 credits

Programvara för inbyggda system

The course addresses the software design process for embedded systems. Embedded software is usually organized in layers from hardware dependent parts to application specific software modules. Lower software layers provide hardware abstraction, communication and resource management services to the higher application specific software layers. Due to the nature of embedded systems, all embedded software has to handle strict non-functional constraints such as delay and throughput, power, and memory constraints. The main focus of the course is on real-time aspects of embedded software.

  • Education cycle

    Second cycle
  • Main field of study

  • Grading scale

    A, B, C, D, E, FX, F

Course offerings

Intended learning outcomes

On completion of the course, the student should be able to

  • point out the special nature of software for embedded systems with regard to non-functional requirements
  • explain how the predictability of the software performance depends on the underlying hardware architecture
  • model a software application so that it can be analysed with regard to real time behavior
  • use different technologies for real time system analysis
  • model and analyse systems with divided resources
  • identify limitations of scheduling algorithms
  • point out limitations of idealized models and be able to bring practical factors into the analysis
  • understand the basic mechanisms in a real time operating system and be able to use it for the development of software for embedded systems
  • give an overview of parallel computing models and their fundamental properties
  • evaluate different programming languages and methods for design of software for embedded systems
  • outline a construction flow for embedded systems software.

Course main content

  • Non-functional requirements of software for embedded systems.
  • Hard and soft real time systems as well as systems where applications with different requirements divide the same platform.
  • Task model for real time system.
  • Static and dynamic scheduling mechanisms for periodic, aperiodic, and sporadic tasks.
  • Protocols for access of divided resources.
  • Parallel computing models: Synchronous, data flow, and time based computing models.
  • Analysis of real time system.
  • Multi-processor real time systems.
  • Support for periodic task model and parallel computing models through programming language and operating system.
  • Construction flow for software for embedded systems: System modeling, systems analysis and system synthesis.


The course assumes basic knowledge in the design of Embedded Systems, the equivalent course IL2206 embedded systems.

Recommended prerequisites

The course requires good knowledge about the design of embedded computer systems, comparable to IL2206 Embedded Systems


The reading list consists of current research articles and selected book chapters that are granted four weeks before start of the course. The following recommended books give a good overview of different parts of the course:

- Giorgio Buttazzo, Hard Real-Time Computing System, Run, ISBN 978-1-4614-0676-1, 2011.

- Edward A. Lee and Sanjit A. Seshia, Introduction to Embedded System, A Cyber-Physical the Approach of System, Second Edition, MIT Press, ISBN 978-0-262-53381-2, 2017.

Required equipment

Own laptop computer


  • LABA - Laboratory Work, 3.0, grading scale: P, F
  • TENA - Examination, 4.5, grading scale: A, B, C, D, E, FX, F

Offered by

EECS/Electronics and Embedded Systems


Ingo Sander <>


Course syllabus valid from: Spring 2019.
Examination information valid from: Spring 2019.