Definitions / Real-Time Requirements
- Examine activities of high-level necessary for designing real-time and embedded systems.
- Definitions in real-time multitasking embedded application design and development.
- Fundamental issues.
- Brief review of several modern techniques for real-time and embedded software requirements specification.
- How to structure a system that must execute within strict deadline and resource limits.
- Requirements Analysis: Context Diagram and Usage Scenarios.
- Quick Overview of Entity-Relationship Diagrams, State Transition Diagrams and StateCharts.
- What You Get in an RTOS, and What You Don't Get.
Identifying Tasks and Objects
- Introduction. Good practices.
- High-Level Software Architecture: The Concurrency.
- Multitasking and timing behaviors.
- The Gomaa Guidelines for Decomposition into Tasks.
Exercise
Heart Rhythm Monitor - Design Partitioning. Object Orientation for Embedded/Real-Time Software?
16 Methods for Intertask Communication
- Detailed examination of intertask communication and synchronization options including mutexes of several varieties.
- 'Liveness' issues such as deadly embrace, lockout, memory starvation and CPU starvation.
- The Correctness Killers: Deadlock, Lockout, Starvation.
- How to configure queue lengths.
- How to examine design dangers such as excessive interrupt latency and interrupt overflow.
- Software Architecture: Intertask Data Communication.
- Software Architecture: Intertask Synchronization.
Fine-Tuning of Intertask Communication
- Evaluation of timing performance and quality for real-time and embedded software design.
- Numerous examples to reinforce the concepts learned.
- Mutexes: Priority Inheritance and Priority Ceiling.
- Modeling of Message Queues.
Exercise
Queuing Calculations for Medical Device.