REAL TIME SYSTEMS AND APPLICATIONS

VINCENZO CARLETTI REAL TIME SYSTEMS AND APPLICATIONS

0622700097
DEPARTMENT OF INFORMATION AND ELECTRICAL ENGINEERING AND APPLIED MATHEMATICS
EQF7
COMPUTER ENGINEERING
2024/2025

OBBLIGATORIO
YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2022
AUTUMN SEMESTER
CFUHOURSACTIVITY
540LESSONS
216LAB
216EXERCISES
Objectives
KNOWLEDGE AND UNDERSTANDING:
THE COURSE AIMS TO PROVIDE KNOWLEDGE FOR THE DESIGN AND IMPLEMENTATION OF FIRMWARE FOR ARM MICROCONTROLLERS BASED ON REAL-TIME OPERATING SYSTEMS. IN PARTICULAR, THE COURSE WILL PROVIDE THE THEORETICAL FOUNDATIONS NECESSARY TO UNDERSTAND THE MAIN ISSUES INHERENT TO THE SCHEDULING OF REAL-TIME TASKS.

APPLIED KNOWLEDGE AND UNDERSTANDING:
PRACTICAL EXAMPLES FOCUSED ON FREERTOS SYSTEMS WILL BE AIMED AT SHOWING HOW TO IMPLEMENT TASK-BASED FIRMWARE, SCHEDULING, MEMORY MANAGEMENT, COMMUNICATION AND CONCURRENCY BETWEEN TASKS AS WELL AS HOW TO STRUCTURE SIMPLE DRIVERS TO INTERFACE WITH PERIPHERALS BASED ON SERIAL INTERFACES.

THE COURSE CONCLUDES WITH A PROJECT ACTIVITY THAT HAS THE OBJECTIVE OF DESIGNING, CREATING AND VALIDATING A REAL-TIME FIRMWARE.
Prerequisites
IN ORDER TO SUCCESSFULLY ACHIEVE THE OBJECTIVES OF THE COURSE, KNOWLEDGE OF THE C LANGUAGE, DEVELOPMENT ENVIRONMENTS FOR PROGRAMMING MICROCONTROLLERS PRODUCED BY STMICROELECTRONICS, AND BASIC KNOWLEDGE OF OPERATING SYSTEMS ARE REQUIRED.
Contents
UNIT 1: REAL-TIME OPERATING SYSTEMS AND SCHEDULING
(LESSON/EXERCISE/WORKSHOP HOURS 14/4/0)
- 1 (2 HOURS LESSON): INTRODUCTION TO THE COURSE, RECALL TO THE CONCEPTS OF REAL-TIME SYSTEMS AND INTRODUCTION TO REAL-TIME OPERATING SYSTEMS
- 2 (2 HOURS LESSON): INTRODUCTION TO BASIC CONCEPTS: TIME CONSTRAINTS, PRECEDENCE CONSTRAINTS, RESOURCE CONSTRAINTS, THE CONCEPT OF SCHEDULING AND PERFORMANCE METRICS
- 3 (2 HOURS LESSON): SCHEDULING OF APERIODIC TASKS
- 4 (2 HOURS LESSON): SCHEDULING OF PERIODIC TASKS
- 5 (2 HOURS EXERCISE): EXERCISES ON THE SCHEDULING OF APERIODIC AND PERIODIC TASKS
- 6 (2 HOURS LESSON): SPORADIC SERVERS, FIXED-PRIORITY SERVERS, DYNAMIC-PRIORITY SERVERS
- 7 (2 HOURS LESSON): PROTOCOLS FOR ACCESSING RESOURCES
- 8 (2 HOURS LESSON): DESIGN ISSUES AT THE KERNEL LEVEL AND AT THE APPLICATION LEVEL
- 9 (2 HOURS EXERCISE): EXERCISES ON FIXED-PRIORITY SERVERS AND ACCESS TO RESOURCES
KNOWLEDGE AND UNDERSTANDING: KNOWLEDGE OF THE BASIC CONCEPTS OF REAL-TIME TASK SCHEDULING, UNDERSTANDING OF THE MAIN DESIGN ISSUES OF HARD REAL-TIME SYSTEMS
APPLIED KNOWLEDGE AND UNDERSTANDING: ABILITY TO DESIGN AND ANALYZE THE SCHEDULING OF REAL-TIME TASKS


UNIT 2: RTOS PROGRAMMING BASICS
(LESSON/EXERCISE/LABORATORY HOURS 4/6/4)
- 1 (2 HOURS) LESSON: INTRODUCTION TO FREERTOS, CMSIS AND THE MAIN DEVELOPMENT ENVIRONMENTS
- 2 (2 HOURS TUTORIAL): CONFIGURATION OF THE DEVELOPMENT ENVIRONMENT AND DEBUGGING TOOLS
- 3 (2 HOURS PRACTICE): HELLO WORLD WITH FREERTOS (USING THE HAL WITH FREERTOS TO LIGHT UP LEDS)
- 4 (2 HOURS PRACTICE): HELLO WORLD WITH FREERTOS (USING MULTIPLE TASKS FOR FLASHING LEDS AT DIFFERENT FREQUENCIES VIA LOOP)
- 5 (2 HOURS LESSON): SYNCHRONIZATION AND COMMUNICATION BETWEEN TASKS (QUEUES AND SIGNALS)
- 6 (2 HOURS LABORATORY): EXERCISE ON SYNCHRONIZATION AND COMMUNICATION BETWEEN TASKS (COORDINATION BETWEEN TWO BUTTON READING TASKS AND LED SWITCHING ON IN LOOP)
- 7 (2 HOURS LABORATORY): EXERCISE ON SYNCHRONIZATION AND COMMUNICATION BETWEEN TASKS (EXERCISE AS ABOVE BUT WITH MORE LEDS)

KNOWLEDGE AND UNDERSTANDING: UNDERSTANDING OF THE BASIC CONCEPTS OF THE FREERTOS OPERATING SYSTEM
APPLIED KNOWLEDGE AND UNDERSTANDING: DESIGN, BUILD AND TEST A FIRMWARE BASED ON FREERTOS.

UNIT 3: I/O WITH FREERTOS
(LESSON/EXERCISE/WORKSHOP HOURS 02/0/22)
- 1 (2 HOURS LESSON): BASIC STRUCTURE OF A DRIVER ON FREERTOS
- 2 (2 HOURS LAB): WRITING A UART DRIVER WITH POLLING
- 3 (2 HOURS LAB): WRITING A UART DRIVER WITH POLLING
- 4 (2 HOURS LAB): WRITING A UART DRIVER WITH INTERRUPTS
- 5 (2 HOURS LAB): WRITING A UART DRIVER WITH INTERRUPTS
- 6 (2 HOURS LAB): WRITING A UART DRIVER WITH DMA (BASIC)
- 7 (2 HOURS LAB): WRITING A UART DRIVER WITH DMA (BUFFERING)
- 8 (2 HOURS LAB): WRITING A UART DRIVER WITH DMA (BUFFERING)
- 9 (2 HOURS LAB): WRITING A UART DRIVER WITH DMA (STREAM BUFFER)
- 10 (2 HOURS LAB): WRITING A UART DRIVER WITH DMA (STREAM BUFFER)
- 11 (2 HOURS WORKSHOP): ADVANCED USE OF QUEUES TO IMPROVE THE DECOUPLING BETWEEN TASKS
- 12(2 HOURS WORKSHOP): ADVANCED USE OF QUEUES TO IMPROVE THE DECOUPLING BETWEEN TASKS

KNOWLEDGE AND UNDERSTANDING: UNDERSTANDING OF THE MAIN WAYS OF CREATING A DRIVER FOR THE FREERTOS SYSTEM.
APPLIED KNOWLEDGE AND UNDERSTANDING: TO DESIGN, BUILD, AND TEST A UART-BASED DEVICE DRIVER FOR THE FREERTOS SYSTEM.

UNIT 4: PROJECT WORK (16 HOURS)
PROJECT WORK HYPOTHESIS: DESIGN, IMPLEMENTATION AND VALIDATION OF THE REAL-TIME FIRMWARE STRUCTURE WITHIN WHICH THE ROVER TASKS WILL BE INTEGRATED.

KNOWLEDGE AND UNDERSTANDING: UNDERSTAND THE MAIN ISSUES IN THE DESIGN, IMPLEMENTATION AND VALIDATION OF A GENERIC FIRMWARE FOR ROVER CONTROL.
APPLIED KNOWLEDGE AND UNDERSTANDING: DESIGN AND IMPLEMENT THE STRUCTURE OF A REAL-TIME FIRMWARE FOR ROVER CONTROL.
Teaching Methods
THE COURSE IS STRUCTURED INTO A SERIES OF THEORETICAL LESSONS, EXERCISES, WITH A PART OF THE COURSE DEDICATED TO THE APPLICATION PROJECT. DURING THE EXERCISES, SOME EXAMPLES WILL BE PRESENTED TO CONCRETELY APPLY WHAT HAS BEEN ILLUSTRATED FROM A THEORETICAL POINT OF VIEW.
Verification of learning
THE EVALUATION OF STUDENTS WILL BE CARRIED OUT THROUGH THE FOLLOWING PHASES:

- EVALUATION OF THE STUDENT'S ABILITY TO DESIGN FIRMWARE FOR ARM-BASED REAL-TIME SYSTEMS: STUDENTS WILL BE DIVIDED INTO WORK GROUPS AND WILL BE REQUIRED TO DOCUMENT AND DEVELOP, IN ALL ITS PHASES, THE DESIGN AND IMPLEMENTATION OF A SYSTEM APPLICATION AND DRIVERS FOR DEVICES FOR REAL-TIME APPLICATIONS.
- EVALUATION OF THE STUDENT'S ACQUISITION OF THEORETICAL TOPICS: FOLLOWING THE PROJECT SUBMISSION, THE STUDENT WILL NEED TO DEMONSTRATE THEIR UNDERSTANDING OF THE THEORETICAL TOPICS THROUGH AN ORAL EXAM IN WHICH THE DEVELOPED PROJECT WILL BE DISCUSSED.
Texts
MASTERING STM32 - CARMINE NOVIELLO

BOOK HARD REAL-TIME COMPUTING SYSTEMS - PREDICTABLE SCHEDULING ALGORITHMS AND APPLICATIONS (BUTTAZZO)

COURSE SLIDES AND EXERCISES
More Information
THE COURSE IS HELD IN ITALIAN
Lessons Timetable

  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2024-11-29]