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

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, and
  • verification

Aims & Objectives

Aims

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

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

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

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

Syllabus

  • 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 & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecturelectures24
Tutorialpre-lab discussion and extra material as required3
Demonstration or Examples Sessionpre-lab or in-lab demonstration/discussion6
Specialist LabLaboratory practical sessions - self-paced learning. Weekly dedicated lab sessions. Assessed in the final lab session of that practical session.27

Assessment

Assessment methods

MethodHoursPercentage contribution
Real-time and embedded laboratories, three assessments-30%
Exam2 hours70%

Referral Method: By examination

Share this module FacebookTwitterWeibo