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. |
Learning 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. |
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 |
Prerequisites / Notice | Prerequisites: C programming, circuit theory, digital logic, binary number representations.
Recommended: basic knowledge of assembly programming and computer architecture. |
Competencies | Subject-specific Competencies | Concepts and Theories | assessed | | Techniques and Technologies | assessed |
|