Module overview
This module gives a broad introduction to development of real-time and embedded systems
Linked modules
Pre-requisites: (ELEC1201 AND ELEC1202) or (COMP1202 AND COMP1203) or ELEC6259
Aims and Objectives
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:
- Verify at least some of the functionality of a real-time system
- Implement the design of a real-time system
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Select an appropriate operating system and program design
- Select an appropriate architecture to meet a real-time requirement
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 and Teaching
Type | Hours |
---|---|
Lecture | 24 |
Tutorial | 3 |
Follow-up work | 12 |
Completion of assessment task | 25 |
Revision | 10 |
Preparation for scheduled sessions | 12 |
Wider reading or practice | 64 |
Total study time | 150 |
Resources & Reading list
Textbooks
Hermann Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications.
Real Time Engineers Ltd. The FreeRTOS Reference Manual.
Richard Barry (2013). Using the FreeRTOS Real Time Kernel - a Practical Guide - Cortex.
Joseph Yiu (2015). The Definitive Guide to ARM Cortex-M0 and Cortex-M0+. Amsterdam; London: Elsevier/Newnes.
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. Pearson Education.
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Final Assessment | 70% |
Continuous Assessment | 30% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat Information
Repeat type: Internal & External