Skip to main navigationSkip to main content
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
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
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


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

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

Resources & Reading list

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

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

Joseph Yiu (2015). The Definitive Guide to ARM Cortex-M0 and Cortex-M0+. 

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

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

Real Time Engineers Ltd. The FreeRTOS Reference Manual. 



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


MethodPercentage contribution
Examination 100%


MethodPercentage contribution
Examination 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Pre-requisites: (ELEC1201 AND ELEC1202) or (COMP1202 AND COMP1203) or COMP6238

Share this module Share this on Facebook Share this on Twitter Share this on 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.