This course aims to give students basic knowledge of control system development using a real-time operating system (RTOS). In the labs, students will first solve several small tasks to master working with the basic components of the VxWorks RTOS. In addition, they will measure the timing parameters of the OS and the hardware platform, allowing them to choose a platform suitable for a particular application. The final assignment will be a more complex task of real-time control of the DC motor, where it will be possible to fully utilize the features of the RTOS. In the lectures, students will be introduced to both practical and theoretical aspects of real-time (and embedded) systems development. The theory serves to verify the temporal correctness of developed real-time applications. Finally, the fundamentals of safety engineering will be discussed too.

Upon completion of this course, students will:

  • Understand the difference between an RTOS and a general-purpose OS.
  • Know the basic means of verifying that a real-time application meets its temporal requirements.
  • Understand the fundamentals of safety engineering and safety analysis (development of safety-critical applications).
  • Improve their C/C++/Rust multithreaded programming skills.
  • Gain hands-on experience with the VxWorks RTOS.
  • Learn how to interface hardware peripherals (timers, GPIO, PWM) from the application code.
  • Know how to develop distributed applications consisting of both real-time (e.g., motor control) and non-real-time (e.g., web server) components.

Prerequisites

The enroll the course, students should be able to program in the C language and understand concepts of multi-threaded programming. It is an advantage, though not necessity, to complete B4B35OSY and/or A0B35APO courses before.

Schedule

This course appears in several variants: A4B35PSR, B3M35PSR, B4B35PSR and BE3M35PSR. All of them have the same schedule and content.

We expect the English class to take place on Thursdays at 16:15.

News

2024-01-15
To get an assessment (zápočet) during exam period, subscribe to an assessment term in KOS. Terms without subscribed students are automatically canceled.
2024-01-10
Last lecture (January 10) is canceled.
2023-11-28
The lecture on November 29 is canceled.
2023-11-10
Added note about different data type of timespec tv_sec to assignment 4.
2023-11-08
Added instructions for having multiple build specifications in a project.
2023-10-06
Updated the walkthough for running the Workbench on Windows system using WSL2, as we use built-in WSLg instead.

Grading

  body/points
Úlohy/Tasks 1 – 7 14–35
– odevzdané do 1 týdne od zadání / submitted in 1 week since assignment 5
– odevzdané do W+1 týdnů od zadání / submitted in W+1 weeks since assignment 5 – min(3, W)
Semestrální práce/Semestral work 5–25
– vlastní program/program code 5–18
– správně vedený projekt ve verzovacím systému/usage of version control system 0–4
– dokumentace/documentation 0–3
Zkouška/Exam 13–40
– písemka/written test (min. 13 pt.) 13–30
– ústní/oral exam 0–10
Známka / Grade Počet bodů / points
A 90–100
B 80–89
C 70–79
D 60–69
E 50–59
F < 50 or < 13 from exam test

Communication

  • Besides off-line communication at lectures and labs, the preferred means of communication in this course is MS Teams. Log in via login@cvut.cz (not @fel.cvut.cz) user name and the main (same as for KOS) password. The team for this course is called B231-B3M35PSR+B4B35PSR+BE3M35PSR+BE4B35PSR+R35PSR.
    • Channel General is dedicated to announcements from teachers.
    • Channel Discussion is where you can ask your questions or discuss course related topics.
  • This course has pages on the faculty Moodle server. The information there is not up-to-date!

Supplementary literature