Real-Time Mission-Critical Systems Design
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Real-Time Mission-Critical Systems Design
This course is part of Real-Time Embedded Systems Specialization
Instructor: Sam Siewert
4,979 already enrolled
Included with
Learn more
Ask Coursera
19 reviews
Recommended experience
19 reviews
Recommended experience
What you'll learn
Use of SECDED (Single Error Correction, Double Error Detection) codes for ECC (Error Correction Code) memories
How flash file systems work, along with wear leveling and the write amplification metric
Differences and common characteristics of high availability and high reliability
Methods and design for redundant hardware with cross strapping and recovery
Skills you'll gain
- Failure Analysis
- System Programming
- Software Architecture
- Systems Architecture
- Electronic Hardware
- Reliability
- Performance Tuning
- System Requirements
- System Design and Implementation
- Hardware Architecture
- Memory Management
- Data Integrity
- Electrical Systems
- Performance Testing
- Embedded Systems
- Hardware Design
- Systems Design
Tools you'll learn
Details to know
4 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 4 modules in this course
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 concepts This course includes specific hardware and software requirements. Please review the FAQ below for complete details.
This module covers RTES software to hardware interface using device abstraction and driver interfaces as well as system scaling.
What's included
11 videos13 readings1 assignment2 peer reviews1 discussion prompt
11 videosβ’Total 224 minutes
- Course Goals and Learning Objectivesβ’6 minutes
- Detailed Overview - with Course Assumed Prior Knowledgeβ’39 minutes
- Scalable Embedded I/O Bus Architecturesβ’25 minutes
- Demonstration: I/O, CPU, or Memory Bound?β’14 minutes
- Drivers and Device Interfacesβ’23 minutes
- Using Linux UVC Driver to Acquire Video Frames with OpenCV and V4L2β’23 minutes
- Digging Deeper into V4L2 API and UVC Driver (Camorama, V4L2-Ctl, etc.)β’21 minutes
- Code Walkthrough: Bt878 VxWorks RTOS Device Interfaceβ’20 minutes
- Key Differences between Linux and RTOS Driversβ’10 minutes
- RT Services Communication and Synchronizationβ’28 minutes
- Using Point-to-point Serial and TCP/IP for Embedded Systemsβ’15 minutes
13 readingsβ’Total 121 minutes
- Course Updates and Accessibility Supportβ’1 minute
- Non-Credit Students: Welcome and Where to Find Helpβ’10 minutes
- Hardware & Software Requirementsβ’10 minutes
- EXTRA HELP: Home Lab Set Upβ’10 minutes
- Textbook: RTECS with Linux and RTOSβ’10 minutes
- CODE: CU Boulder Linux Example Code - Publicβ’10 minutes
- Guidelines for Code Quality Peer Reviewsβ’10 minutes
- Code Walkthrough for Peer Reviewsβ’10 minutes
- Basic Makefile Skills by Exampleβ’10 minutes
- Raspberry Pi Linux Driver Helpβ’10 minutes
- Example Linux Drivers from Jerry Coopersteinβ’10 minutes
- Advanced Unix/Linux and Network Programmingβ’10 minutes
- Video for Linux 2 (V4L2) API & UVC Driverβ’10 minutes
1 assignmentβ’Total 30 minutes
- Quiz 1 - Device Interfaces and Software Driversβ’30 minutes
2 peer reviewsβ’Total 600 minutes
- Using Message Queues or Ring Buffers with Video Dataβ’420 minutes
- Host Client Data Acquisition from an Embedded TCP/IP Serverβ’180 minutes
1 discussion promptβ’Total 10 minutes
- Introduce Yourselfβ’10 minutes
This module covers use of key algorithms such as error correct codes, redundant arrays of devices, and use of flash file systems with persistent memory.
What's included
11 videos2 readings1 assignment2 peer reviews
11 videosβ’Total 224 minutes
- Why We Need ECC? - Single Event Upset Fault Toleranceβ’16 minutes
- SECDED Approach to Memory Protectionβ’22 minutes
- Hamming SECDED Formulation Walk-throughβ’24 minutes
- Analysis: SECDED ECC Using a Model (Excel)β’7 minutes
- SECDED ECC Software Emulatorβ’30 minutes
- Flash memory Hardware Device Overviewβ’25 minutes
- Flash file systems - Sector Erase Wear Leveling - Introductionβ’23 minutes
- Flash Wear Leveling Example - Conclusionβ’32 minutes
- RAID for RT Embedded Systems Mission Critical Dataβ’19 minutes
- Code Demonstration: XOR RAID for Data Loss Fault Toleranceβ’18 minutes
- Code Walkthrough: File Based RAID 5 for RTESβ’9 minutes
2 readingsβ’Total 20 minutes
- Error Correction Code - Hamming Examplesβ’10 minutes
- Example File RAID SRS (Software Req'ts Spec)β’10 minutes
1 assignmentβ’Total 30 minutes
- Quiz 2 - Safe Working and Persistent Memoryβ’30 minutes
2 peer reviewsβ’Total 600 minutes
- Testing the SECDED ECC Emulatorβ’420 minutes
- Linux Software RAID for Data Protection - by Experimentβ’180 minutes
Service software implementation efficiency and optimization methods are covered so that computations can be completed by deadlines. Methods of profiling and tracing applications as well as the whole system are covered.
What's included
9 videos1 reading1 assignment1 peer review
9 videosβ’Total 128 minutes
- Optimizing Single-Threaded Code with the Compilerβ’9 minutes
- Optimizing Code β Thread Level (Sequential and Parallel)β’21 minutes
- Tracing and Profiling Tools Overviewβ’27 minutes
- Tracing and Profiling Application Code (gcov, syslog, and gprof)β’13 minutes
- Profiling and Tracing Your Platform and Application with Sysprof and KernelSharkβ’9 minutes
- Tracing Linux Kernel and Network Stack Eventsβ’4 minutes
- Overview of Top Linux Programming Errorsβ’14 minutes
- Note on Linux Methods of Synchronization Compared to RTOSβ’17 minutes
- Best Practices for RTES Programmingβ’14 minutes
1 readingβ’Total 10 minutes
- Top 30 Linux and RTES Mistakes - How To Fixβ’10 minutes
1 assignmentβ’Total 30 minutes
- Quiz 3 - Methods of Tracing and Debuggingβ’30 minutes
1 peer reviewβ’Total 480 minutes
- Embedded File Based RAID Optimization and Co-processingβ’480 minutes
This module integrates fault tolerant and recovery methods with overall strategies for system level fault detection, isolation and recovery. Design with consideration of failure modes and effects analysis is covered along with redundancy management for high availability.
What's included
5 videos1 assignment1 peer review
5 videosβ’Total 121 minutes
- FDIR - Fault Detection, Isolation, and Recovery - Theoryβ’32 minutes
- High Availability: Definition in Terms of Five Nine's Uptime or Better β’35 minutes
- System Integration Testing (Hardware, Firmware, and Software)β’21 minutes
- Making Software Reliable with SQAβ’19 minutes
- Infamous Mission Critical System Failures - Root Cause Analysisβ’14 minutes
1 assignmentβ’Total 30 minutes
- Quiz 4 - High Availability and High Reliabilityβ’30 minutes
1 peer reviewβ’Total 480 minutes
- Choose the Worst Real-Time Design Failure, Investigate the Root Cause and Presentβ’480 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Build toward a degree
This course is part of the following degree program(s) offered by University of Colorado Boulder. If you are admitted and enroll, your completed coursework may count toward your degree learning and your progress can transfer with you.ΒΉ
Instructor
Offered by
Explore more from Electrical Engineering
- Status: Free TrialU
University of Colorado Boulder
Course
- Status: Free TrialU
University of Colorado Boulder
Course
- Status: Free TrialU
University of Colorado Boulder
Specialization
- Status: Free TrialU
University of Colorado Boulder
Course
Why people choose Coursera for their career
Frequently asked questions
System Requirements
β A Windows or Mac computer for remote access to the Raspberry Pi
β Home network with internet access and a router that allows the Raspberry Pi to be reached on the local network (Wi-Fi or Ethernet)
β SSH enabled on the Raspberry Pi (required)
β VNC enabled on the Raspberry Pi (optional, for remote desktop access)
Hardware Requirements
To complete this specialization, you will need a home lab setup based on a supported embedded Linux platform. The following configuration is required and tested for all course activities.
Required Hardware
β Embedded Linux hardware platform - Recommended: Raspberry Pi 3B+ (Raspberry Pi family or equivalent)
β MicroSD card (16 GB minimum; 32 GB recommended)
β 5V / 2.5A power supply with switch
β UVC-compatible USB camera (USB 2.0 or better)
β HDMI cable
β HDMI monitor + keyboard + mouse (for initial setup only)
β Network connection between the Raspberry Pi and your home router (Wi-Fi or Ethernet)
Recommended Hardware Configuration
Raspberry Pi 3B+, which may be sourced from:
β SparkFun(~$44, board only) or
β CanaKit Raspberry Pi 3 Model B+ Starter Kit(~$125, includes board) plus:
β MicroSD card (preloaded with NOOBS or Raspberry Pi OS)
β Heat sinks
β Case
β 5V / 2.5A power supply with switch
β HDMI cable
β UVC-compatible USB Camera (USB 2.0 or better)
Alternative Hardware Configurations
While the Raspberry Pi 3B+ is the officially supported platform, you may use other Linux-capable embedded platforms at your own risk:
β Raspberry Pi 4 (offers USB 3.0, 2+ GB RAM, and Gigabit Ethernet)
β Jetson Nano, DE10-SoC, or similar boards (advanced users only; self-support required)
Note: All starter code provided in this specialization is tested and verified on the Raspberry Pi 3B+ with Raspberry Pi OS (formerly Raspbian).
Software Requirements
Ability to install and use one of the following remote-access tools on your computer:
β MobaXterm (recommended for Windows)
β PuTTY
β VNC Viewer
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
More questions
Financial aid available,
