- Level Professional
- Duration 50 hours
- Course by University of Colorado Boulder
-
Offered by
About
This course can also be taken for academic credit as ECEA 5317, part of CU Boulder’s Master of Science in Electrical Engineering degree. Upon completion of this course the learner will know the difference between systems you can bet your life on (mission critical) and those which provide predictable response and quality of service (reliable). This will be achieved not only by study of design methods and patterns for mission critical systems, but also through implementation of soft real-time systems and comparison to hard real-time. Methods of verification to determine ability to meet mission critical as well as soft real-time requirements will be learned so that the learner can properly assess risk, reliability and impact of failure in real-time systems. At the end of this course learners will be able to apply an architectural style (cyclic executive, RTOS, or embedded Linux) to more detailed design of a mission critical system, a soft real-time system, or a mixed hard and soft real-time system, including: ● Thorough understanding of hardware/software device interfaces and resource view for hardware abstraction layers (HAL, BSP) ● Design trade-offs with different real-time hardware architectures including single core, multi-core, hybrid-FPGA, GP-GPU, and DSP systems, with emphasis on multi-core ● Mission critical embedded systems architecture and key design elements ● Fault tolerant processing, memory, and I/O conceptsModules
Introduction
1
Discussions
- Introduce Yourself
2
Videos
- Course Goals and Learning Objectives
- Detailed Overview - with Course Assumed Prior Knowledge
1
Readings
- EXTRA HELP - Home Lab Setup
Device Interfaces for Embedded I/O
1
Peer Review
- Using Message Queues or Ring Buffers with Video Data
4
Videos
- Scalable Embedded I/O Bus Architectures
- Demonstration: I/O, CPU, or Memory Bound?
- Drivers and Device Interfaces
- Using Linux UVC Driver to Acquire Video Frames with OpenCV and V4L2
RTOS Example Device Interface for VxWorks Compared to Linux
3
Videos
- Digging Deeper into V4L2 API and UVC Driver (Camorama, V4L2-Ctl, etc.)
- Code Walkthrough: Bt878 VxWorks RTOS Device Interface
- Key Differences between Linux and RTOS Drivers
Layered Network and Communication Drivers for Distributed RTES AMP
1
Peer Review
- Host Client Data Acquisition from an Embedded TCP/IP Server
2
Videos
- RT Services Communication and Synchronization
- Using Point-to-point Serial and TCP/IP for Embedded Systems
Quiz 1 - Device Interfaces and Software Drivers
1
Quiz
- Quiz 1 - Device Interfaces and Software Drivers
Memory and Mission Critical Systems Concepts
3
Videos
- Why We Need ECC? - Single Event Upset Fault Tolerance
- SECDED Approach to Memory Protection
- Hamming SECDED Formulation Walk-through
Models and Emulators for Hamming code for SECDED
1
Peer Review
- Testing the SECDED ECC Emulator
2
Videos
- Analysis: SECDED ECC Using a Model (Excel)
- SECDED ECC Software Emulator
Wear Leveling for RTES Nand Flash Filesystems and Databases
3
Videos
- Flash memory Hardware Device Overview
- Flash file systems - Sector Erase Wear Leveling - Introduction
- Flash Wear Leveling Example - Conclusion
Stored Data Protection for Embedded Systems
1
Peer Review
- Linux Software RAID for Data Protection - by Experiment
3
Videos
- RAID for RT Embedded Systems Mission Critical Data
- Code Demonstration: XOR RAID for Data Loss Fault Tolerance
- Code Walkthrough: File Based RAID 5 for RTES
Quiz 2 - Safe Working and Persistent Memory
1
Quiz
- Quiz 2 - Safe Working and Persistent Memory
Code optimization to meet deadlines
2
Videos
- Optimizing Single threaded code with the compiler
- Optimizing code - thread level (sequential and parallel)
Tracing and profiling analysis for deadlines using Software in Circuit (SWIC)
4
Videos
- Tracing and Profiling Tools Overview
- Tracing and profiling application code (gcov, syslog, and gprof)
- Profiling and Tracing your platform and application with Sysprof and Kernelshark
- Tracing Linux kernel and network stack events
Top RTES Coding Errors, Recommendations and Code Improvement
1
Peer Review
- Embedded File Based RAID Optimization and Co-processing
3
Videos
- Overview of Top Linux Programming Errors
- Note on Linux Methods of Synchronization
- Best Practices for RTES Programming
Quiz 3 - Methods of tracing and debugging
1
Quiz
- Quiz 3 - Methods of tracing and debugging
High Availability definition
2
Videos
- FDIR - Fault Detection, Isolation, and Recovery - Theory
- High Availability Definition in terms of 5 9's uptime or better
Reliability and Availability (RASM) Design Principles
2
Videos
- System Integration Testing (Hardware, Firmware, and Software)
- Making software reliable with SQA
Infamous System Failures and Learning Root-Cause Analysis
1
Peer Review
- Choose the Worst Real-Time Design Failure, Investigate the Root Cause and Present
1
Videos
- Infamous Mission Critical System Failures - Root Cause Analysis
Quiz 4 - HA and HR
1
Quiz
- Quiz 4 - High Availability and High Reliability
Auto Summary
"Real-Time Mission-Critical Systems Design" focuses on differentiating and designing mission-critical and reliable systems. Taught by CU Boulder, this professional-level course, part of a Master's in Electrical Engineering, covers hardware/software interfaces, design trade-offs in real-time architectures, and fault-tolerant concepts. With a 3000-hour duration, it offers Starter and Professional subscriptions, targeting learners aiming to master real-time system assessment and implementation.

Sam Siewert