VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.

227-0124-00L 6 Credits BSC , MSC D-MAVT , D-INFK , D-MATH , D-PHYS , D-ERDW , D-ITET

Embedded Systems

Lecturers & Examiners: PD Dr. Michele Magno
VVZ CR 4.16

Last Updated: 2026-06-03 00:07:41

Abstract

An embedded system is a combination of hardware and software, either fixed in function or programmable, that is designed for a specific application scenario or for a specific task within a larger system. They are part of industrial machines such as agricultural and manufacturing equipment, automotive systems, medical equipment, household appliances, sensor networks, and the Internet of Things.

Objective

Understanding the specific requirements and problems that arise in embedded system applications. Understanding the hardware structure of a microcontroller and an embedded system; memory architecture and memory map, internal and external peripherals, low-power and low-energy design as well as instruction sets and computational accelerators. Understanding the firmware structure of a microcontroller and an embedded system; low-level instruction set, hardware-software interfaces, communication between components, embedded real-time operating systems, real-time scheduling, shared resources, low-power and low-energy programming as well as computational accelerators. Using formal models and methods for designing and optimizing embedded systems. Gaining experience with practical applications of the C programming language, embedded real-time operating systems, and debug functionalities of the associated design environment to design, implement, and verify embedded firmware. Through project-based activities, students will gain substantial experience in applying the C programming language in the context of embedded systems. Projects will involve developing and implementing firmware, utilizing embedded real-time operating systems, and exploring the debugging functionalities within design environments. This hands-on approach aims to bridge the gap between theoretical knowledge and practical application, allowing students to experience the full lifecycle of embedded system development from design to implementation and verification.

Content

This lecture focuses on the design of embedded systems using formal models and methods. Besides the theoretical lecture, the course contains laboratory sessions where students transfer the learned theoretical aspects into praxis by programming a microcontroller and interfacing it with sensors and actuators. Students will be exposed to a commercial microcontroller, and the development board extend with a custom-designed embedded systems educational platform. Specifically, the following topics will be covered in the course: hardware and software structures of embedded systems, low-level instruction set, memory architecture and memory map, peripherals, hardware-software interfaces, communication between components, firmware design methodologies, firmware design using the C programming language, embedded real-time operating systems, real-time scheduling, shared resources, low-power, and low-energy designs well as computational accelerators.

Resources

Lecture Notes

Lecture material, publications, exercise sheets, and laboratory documentation will be available on the course's Moodle page.

Literature

Yifeng Zhu: Embedded Systems with Arm Cortex-M Microcontrollers in Assembly Language and C - Fourth Edition, E-Man Press LLC, ISBN: 978-0982692677, 2023 Giorgio C. Butazzo: Hard Real-Time Computing Systems. Predictable Scheduling Algorithms and Applications, Springer, ISBN 978-1-4614-3019-3, 2011

General Information

Language
English
Levels
BSC , MSC
Frequency
Yearly recurring

Examination

Type
session examination
Mode
written 120 minutes
Aids
20 single-sided or 10 double-sided A4 pages of personal notes or printouts, and a calculator without communication capabilities.
This course has a mandatory project that will be graded as 25% of the final score. It comprises 3 parts:1) a hands-on project, where students need to deploy code on the educational platform of the course, and be able to profile the code on the course educational platform by extracting the performance parameters asked in the project assignment,2) record and present a video pitch of the project,3) complete a short, written assignment using the performance parameters profiled on the educational platform described in point 1).The final report must be submitted by the due date and must also include two portions of C code developed during the hands-on project

Registration & Places

Max Places
250

Course Components

Type Title Time & Place Hours
lecture with exercise Embedded Systems No time listed 4 h weekly

Offered In