Skip to main content
Skip header

Programming in Real-Time Operating Systems

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code450-4097/01
Number of ECTS Credits Allocated5 ECTS credits
Type of Course Unit *Choice-compulsory type A
Level of Course Unit *Second Cycle
Year of Study *First Year
Semester when the Course Unit is deliveredSummer Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites Course succeeds to compulsory courses of previous semester
Name of Lecturer(s)Personal IDName
STA048Ing. Martin Stankuš, Ph.D.
Summary
The course deals with the use of real-time operating systems in embedded systems where the computing core is a microcontroller. The object is the properties of the FreeRTOS operating system and the knowledge is then applied to the selected microcontroller. These include, in particular, the basic features of the operating system, its configuration, tasks and scheduler, interprocess communication, synchronization mechanisms, interrupt, time measurement, and system debugging methods.
Learning Outcomes of the Course Unit
The aim of the course is to familiarize students with a real-time operating systems usable in embedded systems with a microcontroller. The content of the lectures is the theory and implementation procedures of the real-time operating system. Laboratory exercises deal with practical implementation skills applied directly on the embedded system containing a microcontroller. Upon completion of the course, students are able to use the real-time operating system and implement basic tasks in engineering practice.
Course Contents
Lectures outline:

1. Introduction to domain of real time operating systems for embedded systems
2. Features of the FreeRTOS operating system
3. Configuration of the operating system, memory management
4. Tasks, operation of the scheduler, scheduling policy
5. Interprocess communication, queues, queue sets
6. Synchronization – critical sections, events
7. Synchronization – semaphores and binary semaphores, mutexes
8. Synchronization – task notifications
9. Interrupts and its interactions with the operating system
10. Time measurement in the operating system, timers
11. Use of selected software libraries in operating system environment, filesystem
12. Methods for debugging of FreeRTOS applications
13. Design of low-power applications for FreeRTOS
14. Preparation for exam

Laboratory exercises outline:

- Fundamentals of the development environment and FreeRTOS resources.
- Configuration of the operating system, scheduler, interprocess communication, queues, synchronization mechanisms, interrupt, time measurement and debugging methods.
- Individual project in FreeRTOS.
Recommended or Required Reading
Required Reading:
BARRY, Richard. Using the FreeRTOS real time Kernel /: Richard Barry. Bristol: Real Time Engineers, c2010. ISBN 978-1-4461-6914-8.
BARRY, Richard. Using the FreeRTOS real time Kernel /: Richard Barry. Bristol: Real Time Engineers, c2010. ISBN 978-1-4461-6914-8.
Recommended Reading:
YIU, Joseph. The definitive guide to arm cortex -m0 and cortex-m0+ processors. Boston, MA: Elsevier, 2015. ISBN 9780128032770.

Reference Manual for FreeRTOS version 9.0.0 issue 2. Real Time Engineers Ltd. 2016.
YIU, Joseph. The definitive guide to arm cortex -m0 and cortex-m0+ processors. Boston, MA: Elsevier, 2015. ISBN 9780128032770.

Reference Manual for FreeRTOS version 9.0.0 issue 2. Real Time Engineers Ltd. 2016.
Planned learning activities and teaching methods
Lectures, Individual consultations, Experimental work in labs
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Credit and ExaminationCredit and Examination100 (100)51
        CreditCredit40 10
        ExaminationExamination60 25