Description
This course examines the activities of high-level design of real-time and embedded systems software that's to be developed using a real-time operating system (RTOS).
The class begins with a quick examination of some fundamental issues in real-time multitasking embedded application software design and development, and briefly reviews several modern techniques for real-time and embedded software requirements specification. It then quickly focuses on how to structure a software system that must execute within strict deadline and resource limits. Emphasis is placed on multitasking and timing behaviors, rather than object orientation.
The class continues with a detailed examination of intertask communication and synchronization options including mutexes of several varieties. The next major subject area of the class is the evaluation of timing performance and quality of a real-time or embedded software design.
The final (optional) subject of this class is the design of highly-available and safety-critical embedded systems, from an integrated software-hardware system-level perspective.
This course is not a general course about software design theory, but rather it is highly focused on the design of deeply-embedded, time-constrained, resource-constrained multitasking software that will run under the control of a modern RTOS.