Real-Time Systems - Course MA01 Overview

Lecturer
Prof. Dr.-Ing. Birger Mysliwetz

Goal
  • Enable students to design, implement and test software for real-time multitasking applications
Learning Objectives
  • Get insight into the problems associated with (embedded) real-time computing
  • Know and be able to apply real-time software design aspects
  • Understand the advantages of using real-time operating systems
  • Get hands on experience in programming & testing embedded real-time applications
Course Prerequisites
  • Basic understanding of the structure & working principles of microcomputers
  • Elementary knowledge of general purpose OS structure & working principles
  • Programming experience with a block structured high level language, preferably ANSI C (or C++)
Lecture Topics
  • Examples & Application Areas of Real-Time Systems
  • Technical Terms and Definitions; Hard vs. Soft Real-Time Requirements
  • Working Principles of General Purpose Operating Systems; Processes; Threads; Tasks; Basic Scheduling Principles and Variants
  • Real-Time Systems Concepts and Real-Time Software Design; Rate Monotonic Approach (RMA) for Priority Assignment; Reentrant Functions; Semaphores
  • Mutual Exclusion; Shared Resources; Synchronization; Deadlocks; Priority Inversion; Intertask-Communication
  • Overview of Commercial Real-Time Operating Systems
  • Introduction to the Real-Time Kernel MicroC/OS-II; System Calls; Task Structure; Application Structure; Special/System Specific Tasks
Practical Lab Exercises
  • Processes, threads and related system calls under Windows-11 on a PC; analysis of fundamental real-time properties of Windows-11.
  • Introduction to an ARM Cortex-M based microcontroller target and embedded software development toolchain; implementation and timing analysis of a μC/OS multitasking application for step motor control on above microcomputer; statistics function and CPU load measurement.
  • Using semaphores under μC/OS to control access to shared resources; priority inversion; synchronization; application of tracing for task timing analysis.
  • User-interface for step motor control via task; task/task & ISR/task communication; priority assignment; buffer size calculation.
  • Application of μC/OS memory management and message passing functions for task/task & ISR/task communication.
  • Test of special cases; closed loop control application with user-interface and task/task & ISR/taskcommunication; priority assignment.
Course Structure, Audience
Duration 1 semester, 4 hrs per week, ca. 40% lectures and 60% lab exercises
Application oriented course in EE/IT- and ING-Master's program.

Grading
90% Written examination ( in examination period ), 90 minutes, no material allowed
10% Preparation tests before lab excercises #1 - #3, 15 minutes each

Credits
5 ECTS credit points