The course is taught in English.
This course is part of the Master Degree in Computer Engineering, focused on Embedded Systems, and it is eligible course for the Master Degree in Mechatronic Engineering.
The course aims at deepening the concepts acquired during the Operating Systems course, describing the peculiarities of embedded systems, of the dedicated development tools, and outlining the peculiarities of some operating systems for embedded systems that are particularly relevant (process scheduler, OSEK/VDX, AUTOSAR, Linux). The course will also deepen the concepts of real-time embedded systems, and the issues of communications with ad-hoc hardware components.
The course is conducted in English and is included in the curriculum of the Master's Degree program in Computer Engineering, with a specific focus on Embedded Systems. Its main objective is to enhance the understanding of concepts learned in the Operating Systems course by exploring the unique characteristics of embedded systems. This includes delving into dedicated development tools and examining specific operating systems relevant to embedded systems, such as (micriumOS, freeRTOS, OSEK/VDX, and Embedded Linux). The course also provides a comprehensive study of real-time embedded systems, communication challenges with specialized hardware components, and an overview of security issues associated with operating systems.
- Concept of embedded system.
- Understanding of the development tools for embedded systems: cross-compiler, emulator, debug tools, profiling tools, virtualization tools.
- Concept of real-time embedded systems.
- Understanding of examples of operating systems for embedded systems.
- Skill for the development of modules for the communication with ad-hoc hardware components.
Students will acquire knowledge, varying in depth depending on the specific topic, as well as skills and a profound comprehension of the mechanisms and motivations underlying the following technologies and solutions:
- Concept of embedded system.
- Understanding of the development tools for embedded systems: cross-compiler, emulator, debug tools, profiling tools, and virtualization tools.
- Concept of real-time embedded systems.
- Understanding of examples of operating systems for embedded systems.
- Skill for developing modules for communication with ad-hoc hardware components.
- Understanding security issues in the embedded domain.
- Ability to develop programs in C language.
- Knowledge of the architecture of computer-based systems: in particolar knowledge of processor architecture and memory organization.
- Knowledge of the interrupt mechanisms, and basic knowledge of assembly programming.
- Ability to develop programs in C language.
- Knowledge of the architecture of computer-based systems: in particular, knowledge of processor architecture and memory organization.
- Knowledge of the interrupt mechanisms and basic knowledge of assembly programming.
Introduction to Embedded Systems (0.5 CFU)
- Classification with respect to desktop systems.
- Memory technology device.
Development tools (0.5 CFU)
- Cross-compiler.
- Emulator.
- Debugger.
- Profiler.
- Virtual platforms.
Operating Systems for Embedded Systems (4 CFU)
- Real time and process scheduling.
- Analysis of the architecture and services offered by operating systems for embedded: process scheduler, VxWorks, OSEK/VDX, AUTOSAR, Linux.
- Anatomy of an operating system for embedded systems.
Programming of an embedded OSEK/VDX system (1 CFU):
- I/O management, and device drivers.
- Use of an evaluation board.
- Building a OSEK/VDX operating system for embedded systems: how to use development tools.
- Design and development of device drivers for custom devices.
Advanced tools for debugging and profiling of embedded systems (1 CFU)
AUTOSAR concept, and AUTOSAR basic software architecture (1 CFU):
Introduction to Embedded Systems (0.5 CFU)
- Classification with respect to desktop systems.
- Memory technology device.
Development tools (0.5 CFU)
- Cross-compiler.
- Emulator.
- Debugger.
- Profiler.
- Virtual platforms.
Operating Systems for Embedded Systems (3 CFU)
- Real-time and process scheduling.
- Analysis of the architecture and services offered by operating systems for embedded: process scheduler, micriumOS, OSEK/VDX, Embedded Linux.
- Anatomy of an operating system for embedded systems.
Operating System Security (1 CFU)
- HW/SW attack models
- Countermeasures
Programming of an embedded OS (2 CFU):
- I/O management and device drivers.
- Use of an evaluation board.
- Building an OS for embedded systems: how to use development tools.
- Design and development of device drivers for custom devices.
Advanced tools for debugging and profiling embedded systems (1 CFU)
The course is organized in lectures and exercises in class, and practical exercises in laboratory. The topics are presented during formal lectures/exercises in class, and then are addressed from the practical point of view in the following week.
The course combines traditional classroom lectures with supervised exercise sessions, providing students with the opportunity to apply the concepts learned in practical scenarios and engage in discussions with the instructor. Additionally, certain topics within the course include dedicated lab sessions, allowing students to observe the practical implementation of related technologies and reinforce their understanding of the concepts covered in the lectures.
The course is divided into two main components: classroom lectures and exercises, which account for 6 CFU (Crediti Formativi Universitari), and laboratory sessions, which contribute 2 CFU. Additionally, students will have the opportunity to be tutored for an amount of 2 CFU.
Notes provided by the teacher.
Additional reading:
A. Berger
Embedded Systems Design: An Introduction to Processes, Tools and Techniques
CMP Books, 2001, ISBN-10: 1-57-820073-3
Silbershatz A., Galvin. P., Gagne G.
Operating Systems
8th Edition, Wiley, 2009, ISBN: 978-0-470-12872-5
Notes provided by the teacher.
Additional reading:
A. Berger
Embedded Systems Design: An Introduction to Processes, Tools, and Techniques
CMP Books, 2001, ISBN-10: 1-57-820073-3
Silbershatz A., Galvin. P., Gagne G.
Operating Systems
8th Edition, Wiley, 2009, ISBN: 978-0-470-12872-5
Slides; Esercizi; Esercizi risolti; Esercitazioni di laboratorio; Esercitazioni di laboratorio risolte; Video lezioni dell’anno corrente;
Lecture slides; Exercises; Exercise with solutions ; Lab exercises; Lab exercises with solutions; Video lectures (current year);
Modalità di esame: Prova scritta (in aula); Prova orale obbligatoria; Elaborato progettuale in gruppo;
Exam: Written test; Compulsory oral exam; Group project;
...
Exam
Written exam lasting 60 minutes, closed books, composed of questions on the exam content, and numerical exercises to apply the theory presented in class. The maximum score for this part is 33.
Assignment
Students will be asked to deliver a group assignment (2 persons per group) to be developed during the semester, describing the activities done in lab. The maximum score for this part is 33.
The final grade is obtained using the following weights: 70% for the written exam, 30% for the assignment. In case the final grade is 33/30, 30L will be recorded.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Written test; Compulsory oral exam; Group project;
The examination consists of two components.
PART1 (mandatory):
This part entails a written test covering all the class topics. The test may include various types of questions, such as open-ended questions, multiple-choice questions, exercises focusing on specific topics, and the development of small programs. Each question is assigned a score, which is announced during the exam.
The exam is delivered on a computer and requires using the open-source tools explained in class.
The maximum score achievable in this part is 25, and the test duration is 90 minutes.
PART2 (optional):
The second part involves a project that emphasizes the application of the concepts learned in class and enhances the student's ability to independently find documentation and acquire new skills beyond the scope of the course. Each year, a set of topics will be assigned, but students are encouraged to propose their own topics of interest. Projects that involve collaborations with other courses are particularly welcome.
Once the project is completed, students must present it during an oral exam session, highlighting each team member's contribution to the results. The oral exams consist of a 20-minute presentation where all team members must participate and contribute to the presentation of the work done. The presentation will be followed by questions on the developed work aimed at assessing the contribution of all team members to the project. Finally, a live demo of the developed project will be possible whenever applicable.
The project aims to assess:
- The student's proficiency in implementing and developing embedded applications.
- The efficiency of the implementation.
- The student's ability to work effectively in a team.
- The student's presentation skills.
- The individual contributions of each student to the project.
The maximum score achievable in this part is 10 points.
The final grade is determined by summing up the grades obtained in PART 1 and PART 2, capping the score to 32.
The highest distinction, "Laude," is awarded if the total grade equals 32.
PART 1 and PART 2 can be completed within different timeframes. However, PART 2 must be finished within one year (before the start of the next course edition). The project is assigned once, and trying it multiple times is impossible.
(ANY MINOR CHANGES TO THESE POLICIES/PROCEDURES WILL BE TIMELY COMMUNICATED TO THE STUDENTS)
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.