Lecturer(s)
|
-
Hlava Jaroslav, doc. Dr. Ing.
|
Course content
|
The course provides the basics of designing software systems for implementing digital controllers and other real-time systems. The basic principles of real-time programming are discussed: task scheduling, scheduling algorithms and schedulability analysis, processes, synchronization, communication, and functions of real-time operating systems. The course explains how controllers, whose theoretical principles students know from other courses, can be implemented in real-time. Topics of the lectures: Real-time systems: definitions, soft and hard real-time systems, real-time control systems, examples of applications, and the consequences of faulty design of real-time systems. Scheduling real-time tasks. Priority-based scheduling of periodic tasks, simple schedulability tests (max schedulable load, hyperbolic bound). Time demand and response time analysis, software support for schedulability analysis Scheduling aperiodic and sporadic tasks, servers (polling, deferrable, sporadic). Access control to shared resources, priority inversion, semaphores, and mutexes. Protocols for shared resource management and priority inversion control and their properties (non-preemptable critical sections, priority inheritance, priority ceiling protocols) Real-time operating systems and their kernels Detailed treatment of the Free RTOS operating system focusing mainly on the following topics: Main data structures of CMSIS-OS API v2.x Tasks in FreeRTOS Implementation of Queues, Semaphores and Mutexes Software timers Memory allocation and management Events and Notifications (Thread flags) Hooks FreeRTOS in low-power applications Implementation of complex real-time control systems using the code generation from Simulink both in the bare metal configuration and in connection with Free RTOS support. The main focus of the practicals/seminars is on the practical implementation of real-time systems under the Free RTOS system. This is done using the Nucleo STM32 boards with L4R5ZI processors as a hardware platform. Real-time control systems are implemented using both classical manual coding in the Cube IDE environment and automatic code generation from Matlab/Simulink. The software tool Cheddar is used to analyze schedulability.
|
Learning activities and teaching methods
|
Monological explanation (lecture, presentation,briefing)
- Class attendance
- 56 hours per semester
- Home preparation for classes
- 54 hours per semester
- Preparation for exam
- 40 hours per semester
|
Learning outcomes
|
This course is intended to provide the students with good understanding of the most important methods of real time systems design, analysis and programming. The main focus is on real time control systems. However, the majority of the explained principles and methods can be used for all real time systems in general.
Graduates from this course will obtain good knowledge in the field of real time systems design, analysis and programming.
|
Prerequisites
|
Unspecified
|
Assessment methods and criteria
|
Combined examination
Requirements for getting the credit prior to the exam are activity at the practicals /seminars and successful completion of all assignments. Because of the significant focus on practical real-time programming, it is often not possible to distinguish between lectures and seminars. For this reason, attendance at all lessons is compulsory regardless of whether they are marked as lectures or seminars. The examination includes a written test on real-time system theory, a practical programming assignment and an oral exam.
|
Recommended literature
|
-
Liu, J. W. Real Time Systems. Prentice Hall, Upper Saddle River, N.J., 2000.
-
Wittenmark, B., Aström, K. J., Arzén K. E. Computer Control: An Overview. IFAC Professional Briefs, 2007.
|