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)