Lecturer(s)
|
-
Hlava Jaroslav, doc. Dr. Ing.
|
Course content
|
1. Real-time systems: definitions, soft and hard real-time systems, real-time control systems, and examples of applications. 2. Commonly used approaches to scheduling in real-time systems. Priority-based scheduling of periodic tasks, maximum schedulable utilisation, and hyperbolic upper bound. 3. Time demand analysis and response time analysis. Software tools for schedulability analysis. 4. Scheduling of aperiodic and sporadic tasks and servers for their execution. 5. Control of access to shared resources, synchronisation mechanisms (critical sections, semaphores, mutexes), priority inversion and deadlock problems. Protocols for controlling the priority inversion. 6. STM32 Arm Cortex M4 processors, use of the most important peripherals (AD and DA converters, hardware timers, interrupt system) and corresponding HAL layer functions. 7. Characteristic features of real-time operating systems. Free RTOS operating system, Free RTOS native API and CMSIS-OS API v2.x 8. Tasks in FreeRTOS, state diagram, task scheduling, communication and synchronisation using queues. 9. Semaphores and mutexes in Free RTOS and their use, software timers 10. Basic principles of automatic control, feedback control loop, on-off and PID controllers. 11. Digital PID controllers and their software implementation. 12. Memory management in Free RTOS, events and notifications, customising Free RTOS behaviour using hooks 13. Support for low-power modes in FreeRTOS 14. Basic overview of other major real-time operating systems.
|
Learning activities and teaching methods
|
Monological explanation (lecture, presentation,briefing), Laboratory work
- Class attendance
- 56 hours per semester
|
Learning outcomes
|
The objective of this course is to provide the students with a good understanding of the basics of real time systems design. The course includes basic principles of real time programming: processes, synchronisation, communication and scheduling in real time systems and functions of real time operating systems. Since real time control represents one of the most important areas where the real time systems are applied, the course includes also an introduction into digital control, computer implementation of control algorithms and distributed control systems.
Students will understand the basic principles of analysis and design of real-time software systems, both on a general level and specifically using the Free RTOS operating system, with support from which they will be able to program real-time applications. They will also gain a basic overview of the most commonly used methods of digital control. Hence, they will be able to apply their knowledge to the programming of digital control systems.
|
Prerequisites
|
Condition of registration: none
|
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. 2002.
|