The University of Southampton

COMP3215 Real-Time Computing and Embedded Systems

Module Overview

This module gives a broad introduction to development of real-time and embedded systems

Aims and Objectives

Module Aims

We will study the tools and techniques necessary for the development of real-time and embedded systems. These will include: - System architecture - Low-level programming - High-level languages - Design methodologies - Verification

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • The requirements placed on real-time systems
  • The design space in which real-time system designers operate
Transferable and Generic Skills

Having successfully completed this module you will be able to:

  • Use graduate-level literature to expand your understanding of real-time and embedded systems
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Implement the design of a real-time system
  • Verify at least some of the functionality of a real-time system
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Select an appropriate architecture to meet a real-time requirement
  • Select an appropriate operating system and program design


Issues and concepts - Definition of real-time - Temporal and event determinism - Architecture review and interfacing - Interrupts, traps and events - Response times and latency - Real-time clocks Application domains - DSP - Safety critical - Small embedded - Large-scale distributed Low-level programming for real-time - I/O - Concurrency: memory models and synchronisation primitives - Monitors/condition variables - Semaphores - Optimistic scheduling - ARM and Intel assembly language, integration with C - Architectural issues, memory models Scheduling - RMS - EDF - Priority inversion - Time triggered Operating systems - Protected modes, virtual memory - Device drivers - Internet of things: examples including Contiki - FreeRTOS Languages in embedded and real-time systems - C and C++ Correctness - Concurrency Issues - Process algebras - Model checkers, temporal logic Embedded Systems - Example systems/applications - Hands-on experience with software development - Operating systems (eg ContikiOS, FreeRTOS, Android)

Learning and Teaching

Wider reading or practice64
Completion of assessment task25
Follow-up work12
Preparation for scheduled sessions12
Total study time150

Resources & Reading list

Wayne Wolf (2012). High-Performance Embedded Computing: Architectures, Applications, and Methodologies. 

Hermann Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications. 

Burns, A and Wellings, A (2011). Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time POSIX. 

Richard Barry (2013). Using the FreeRTOS Real Time Kernel - a Practical Guide - Cortex. 



MethodPercentage contribution
Exam  (2 hours) 70%
Laboratory 30%


MethodPercentage contribution
Exam 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Prerequisites: ELEC1201 and ELEC1202 (or COMP1202) and COMP1203

Share this module Facebook Google+ Twitter Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.