Lectures
You can download the lectures here. We will try to upload lectures prior to their corresponding classes.
-
Why this course?
Explain why this course is interesting and why you need to pay attention
[slides] [handouts]
Suggested Readings:
- RTOS vs Bare-Metal
- Real-time operating system
- Linux on embedded systems
- A Defective Pacemaker Can Cause More Harm Than Good
- Drone warfare: the autonomous debate
- Two challenges in embedded systems design: predictability and robustness
- What really happened on Mars Rover Pathfinder
- So You Want To Be An Embedded Systems Developer
-
Fundamentals of real-time systems
This lecture provides an overview of the nature of real-time systems: definitions, CPU utilization, deadlines and challenges
[slides] [handouts]
Suggested Readings:
- Introduction to Real Time
- Chap 1, Ovaska, L. P. A. J. (2012). Real-Time Systems Design and Analysis: Tools for the Practitioner by Phillip A Laplante (4th Edition). Wiley-IEEE Press
- Nondeterministic algorithm
-
Introduction to FreeRTOS
Introduction to FreeRTOS the most popular RTOS for embedded system. FreeRTOS is an open source, real-time operating system for microcontrollers that makes small, low-power edge devices easy to program, deploy, secure, connect, and manage.
[slides] [handout]
Required Readings:
- Pages 2 to 8 of Zhu, M. Y. (2016). Understanding FreeRTOS: A requirement analysis
- Chap 4 of Barry R. (2018). Mastering the FreeRTOS™ Real Time Kernel A Hands-On Tutorial Guide
Suggested Readings:
-
RTOS services —part I
Introduces OS tasks, tasks states, and task memory management, semaphores, priority inversion
[slides] [handout]
Required Readings:
- Understanding FreeRTOS Task Stack Usage and Kernel Awareness Info
- Chap 6 of Simon, D. E. (1999). An Embedded Software Primer
- Chap 3 of Mastering the FreeRTOS Real Time Kernel
- FreeRTOS tasks states
-
RTOS services —part II
Inter-tasks communication, timer services, queues, mailboxes, interaction between ISR and RTOS
[slides] [handout]
Required Readings:
- Chap 7 of Simon, D. E. (1999). An Embedded Software Primer
- Chap 5 and 6 of Barry R. (2018). Mastering the FreeRTOS™ Real Time Kernel A Hands-On Tutorial Guide
- Chapter 3 Zhu, M. Y. (2016). Understanding FreeRTOS: A requirement analysis
-
Task scheduling taxonomy
Introduction to the general problem of scheduling a set of tasks on a uniprocessor system. Objectives, performance metrics, and hypotheses are clearly presented, and the scheduling problem is precisely formalized. The different algorithms proposed in the literature are then classified in a taxonomy, which provides a useful reference framework for understanding the different approaches.
[slides] [handout]
Required reading:
- Chap 2 of Buttazzo, G. C. (2011). Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications (Real-Time Systems Series, 24) (3rd ed. 2011 ed.). Springer.
Suggested readings:
- Chap 1 of Cottet, F., Delacroix, J., Mammeri, Z., & Kaiser, C. (2002). Scheduling in Real-Time Systems (1st ed.). Wiley.
-
Scheduling of Independent Tasks
Discusses scheduling algorithms for independent tasks. Four basic algorithms are discussed: rate monotonic, inverse deadline, earliest deadline first, and least laxity first. These algorithms deal with homogeneous sets of tasks, where tasks are either periodic or aperiodic. However, real-time applications often require both types of tasks. In this context, periodic tasks usually have hard timing constraints and are scheduled with one of the four basic algorithms. Aperiodic tasks have either soft or hard timing constraints.
[slides] [handout]
Required Readings:
- Chap 2 of Cottet, F., Delacroix, J., Mammeri, Z., & Kaiser, C. (2002). Scheduling in Real-Time Systems (1st ed.). Wiley.
- Do exercises 2.1, 2.2
Suggested readings
-
Scheduling of Dependent Tasks
This lecture discusses how to schedule tasks with inter-dependance (e.g., inter-task communication, shared resources). The lecture will explore precedence constraints that correspond to synchronization or communication among tasks and mutual exclusion constraints to protect shared resources.
[slides] [handout]
Required Readings:
- Chap 3 of Cottet, F., Delacroix, J., Mammeri, Z., & Kaiser, C. (2002). Scheduling in Real-Time Systems (1st ed.). Wiley.
- Do exercises 3.1
Suggested readings
-
So You Wanna Be an Embedded Engineer?
Off topic discussion on what it takes to become an embedded engineer
[slides] [handout]
Suggested:
- Edwards, L. (2014a). So You Wanna Be an Embedded Engineer: The Guide to Embedded Engineering, from Consultancy to the Corporate Ladder. Newnes.
- A curated list of awesome embedded resource
- A curated list of delightful Embedded Systems libraries, RTOSes, packages, and references!