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
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
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 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
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
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 |
---|---|
Completion of assessment task | 25 |
Lecture | 24 |
Follow-up work | 12 |
Revision | 10 |
Preparation for scheduled sessions | 12 |
Tutorial | 3 |
Wider reading or practice | 64 |
Total study time | 150 |
Resources & Reading list
Textbooks
Burns, A and Wellings, A (2011). Real Time Systems and Programming Languages: Ada 95, Real-Time Javaand Real-Time POSIX. Pearson Education.
Richard Barry (2013). Using the FreeRTOS Real Time Kernel - a Practical Guide - Cortex.
Wayne Wolf (2012). High-Performance Embedded Computing: Architectures, Applications, andMethodologies.
Real Time Engineers Ltd. The FreeRTOS Reference Manual.
Joseph Yiu (2015). The Definitive Guide to ARM Cortex-M0 and Cortex-M0+. Amsterdam; London: Elsevier/Newnes.
Hermann Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications.
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