ACS335 Real-Time Embedded Systems

Module Description

Many systems, for example; a control system, fault detection system or health monitoring system are required to work in real-time, i.e. work in the “real” world and meet the timing constraints of the “real” world. This module looks at how to take theoretical designs and simulated systems and develop an appropriate implementation which will work in the real world. Such systems can be developed and implemented using a CPU and external devices in an embedded system application/device to perform the desired tasks in the “real” world. The first part of the module looks at the hardware associated with building an embedded system, while the second part looks at how the desired functionality and thus real-time operation of an embedded system can be realised through software/hardware.

This module will be taught with the aid of take home kits that students will have for the full duration of the module. These will be used for both teaching and assessment.

Credits: 10 (Autumn semester)

Previous experience of C programming and its application to microcontroller is required. If you are unsure as to whether you have suitable pre-requisite knowledge, please refer to the syllabus of 2016/17 ACS126 for specific details of what we expect students to have previously studied. 

Only available to students studying in the Department of Automatic Control & Systems Engineering, Aerospace Engineering programmes and Bioengineering programmes.

Cannot be taken by students who have already taken ACS6335 or ACS325.

Module Leader

Simon PopeDr Simon Pope

If you have any questions about the module please talk to me during the lectures or the labs in the first instance. It is likely that other students will learn from any questions you ask as well, so don’t be afraid to ask.

Outside of lectures please contact me via email, or drop in to see me.

Learning Outcomes

Learning Outcomes

By the end of the module students will be able to:

  1. Describe and illustrate the concept of embedded systems, including their architecture and review important aspects related to digital systems. [SM3m]
  2. Describe CPU architecture, instructions and parallel processing and illustrate their effects on CPU performance. [SM3m]
  3. Describe, appraise, devise and implement methods for how an embedded CPU gets, manages and stores data. This includes concepts such as the Cache and how the CPU interfaces with external devices. [EA1fl, EA2m, EP2m, EP4m]
  4. Describe and illustrate the real-time operation of a system and demonstrate the concept of real-time programming using tasks. [EA4m]
  5. Examine and evaluate the software and hardware functionality required by an embedded system to achieve real-time operation and subsequently implement task control and real-time scheduling algorithms required to perform multitasking. [EA1m, EA2p, D3m]
  6. Discuss, appraise and implement efficient software design for embedded systems. [EA1m, EA2p]

This module satisfies the AHEP3 (Accreditation of Higher Education Programmes, Third Edition) Learning Outcomes that are listed in brackets after each learning outcome above. For further details on AHEP3 Learning Outcomes, see the downloads section of our accreditation webpage.



  • Introduction
  • The Digital World and its interface to the "Real" World
  • The CPU
  • Acquiring, managing and storing information
  • Controlling and managing an embedded system
Teaching Methods

Learning and Teaching Methods

  • Lectures: 10 hours
  • Tutorials: 6 hours
  • Laboratories: 14 hours
  • Independent Study: 70 hours

This is a practical course and students will be working individually in labs upon their own hardware. In addition to lectures from the academic staff, there will be a range of lab sheets and supporting materials, such as video guides and webinars.

Teaching Materials

Learning and Teaching Materials

All teaching materials will be available via MOLE.

The resources available on MOLE and shared drives include lecture slides and additional notes, everything required for the laboratories, including lab sheets, programming guides, component data sheets, and video guides



  • Lab 25% (Basic knowledge and practical skills)
  • In-class test 25% (Theory and implementation knowledge)
  • Assignment 50% (More advanced practical skills and implementation knowledge)

Resit assignments are not available for this module



  • Written feedback returned via MOLE for all laboratory assignments.
  • Verbal feedback will be received during the laboratories, and lectures.
Student Evaluation

Student Evaluation

Students are encouraged to provide feedback during the module direct to the lecturer. Students will also have the opportunity to provide formal feedback via the Faculty of Engineering Student Evaluation Survey at the end of the module.

Recommended Reading

Recommended Reading

  • Wolf, W.H, 2008, Computers as Components: Principles of Embedded Computing System Design, Morgan Kaufmann, San Francisco, [available in Information Commons, 004.21(W)]
  • Furber, S.B, 2000, ARM: system-on-chip architecture, 2nd Edition, Addison-Wesley, London,
  • Valvano, J.W., 2000, Embedded Microcomputer Systems: Real-Time Interfacing, Brookes/Cole, Pacific Grove,
  • Hayes, J. P., 1998, Computer Architecture and Organization, 3rd Edition, McGraw-Hill, [available in Information Commons, 004.22(H)]