Lectures: Monday 9:00 - 10:30, S9 (Tomáš Bureš)
Labs: Wednesday 12:20 - 13:50, S11 (Bring your own laptops) (Milad Ashqi Abdullah)
Page in SIS: NSWE001
Grading: Credit and exam
Course Overview
- All materials will be available on the Course Teams.
Expected Knowledge
Operating Systems
- Fundamentals of processes, threads, scheduling algorithms, and synchronization mechanisms
C Programming and Low-Level Systems
- Proficient C programming skills for embedded development
Hardware Fundamentals
- Basic understanding of digital systems and microprocessor architecture
English
Literature and Links
- Giorgio C. Buttazzo, Hard Real-Time Computing Systems. Kluwer AP, ISBN: 0-7923-9994-3
- C. L. Liu and James W. Layland. 1973. Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment. J. ACM 20, 1 (Jan. 1973), 46–61.
Lectures
The lectures on Monday 9:00 - 10:30 will be held in the S9 room.
- Introduction
- What are Embedded Real-Time Systems?
- Scheduling
- Aperiodic Scheduling
- Periodic Scheduling
- Resources
- Response Time Analysis
- Offline Scheduling
- Realtime design
- Controllers
- Unified Diagnostic Services (UDS)
Labs
The labs on Wednesday 12:20 - 13:50 will be held in the S11 room.
Attending the lab sessions is optional, but highly recommended.
Bring your own laptop.
| Week | Date | Lab Session Topic |
|---|---|---|
| 1 | 18.02 | STM setup with an example, explanation of Assignment1 |
| 2 | 25.02 | QA |
| 3 | 04.03 | QA |
| 4 | 11.03 | Explanation of Assignment2 |
| 5 | 18.03 | QA |
| 6 | 25.03 | Explanation of Keypad and LCD, Assignment3 |
| 7 | 01.04 | QA |
| 8 | 08.04 | Explanation of Temperature Sensor, Encoder, Servo Motor, and Assignment4 |
| 9 | 15.04 | QA |
| 10 | 22.04 | Explanation of S32 core with an example and Assignment5 |
| 11 | 29.04 | QA |
| 12 | 06.05 | Explanation of CAN and Assignment6 |
| 13 | 13.05 | NO Lab |
| 14 | 20.05 | QA |
Assignments, Credit and Exam
There are 6 assignments. Successful completion of all 6 assignments is compulsory in order to receive credit for the course.
In addition, passing the final exam is a mandatory requirement for completing the course. The exam may only be taken once all lab assignments have been completed and course credit has been granted.
The exam will cover the theory explained during the lectures and will also include questions designed to assess whether the student understands the implementation of the assignments they have submitted.
Use of AI tools when completing the assignments is allowed, however you have to be able to understand your code. That means when asked (and without the help of the AI tool) you must be able to explain your code and justify the approach you have taken.
Hardware for the assignments will be provided. Assignment 1-3 will be implemented on STM32F407 Discovery Board (https://www.st.com/en/evaluation-tools/stm32f4discovery.html). For assignments 4-6, an additional custom board will be provided (equipped with NXP S32K118). The boards for exercises 4-6 will be provided upon request only after successful completion of Assignments 1-3.
Find your repository our faculty gitlab https://gitlab.mff.cuni.cz/teaching/nswe001/2026-summer/student-YOURLOGIN
For assignments 1-4, create a subfolder with the name of the assignment, and push your code there. For assignments 5-6 instructions will be provided how to structure your code.
It is highly recommended to complete an assignment before the date of the next assignment:
- Assignment 1 - 04.03.2026
- Assignment 2 - 18.03.2026
- Assignment 3 - 01.04.2026
- Assignment 4 - 15.04.2026
- Assignment 5 - 06.05.2026
- Assignment 6 - 20.05.2026
The deadline for submission of all assignments is on 31.08.2026.
Hardware Equipment
-
STM32F407G-DISC1
-
SKS32K118
- https://www.nxp.com/docs/en/data-sheet/S32K1xx.pdf
- https://www.nxp.com/webapp/Download?colCode=S32K1XXRM
- https://users.ece.utexas.edu/~valvano/mspm0/Arm_Architecture_v6m_Reference_Manual.pdf
- https://documentation-service.arm.com/static/60411750ee937942ba301773
- https://documentation-service.arm.com/static/5f04abc8dbdee951c1cdc9f7