- Level Professional
- Duration 51 hours
- Course by University of Colorado Boulder
-
Offered by
About
This course can also be taken for academic credit as ECEA 5315, part of CU Boulder’s Master of Science in Electrical Engineering degree. Course Description: In this course, students will design and build a microprocessor-based embedded system application using a real-time operating system or RT POSIX extensions with Embedded Linux. The course focus is on the process as well as fundamentals of integrating microprocessor-based embedded system elements for digital command and control of typical embedded hardware systems. Lab Description: The course requires the student to install embedded Linux on the Raspberry Pi ARM A-Series System-on-Chip processor. This course must be completed using a Raspberry Pi as an embedded system (headless) not a PC running Linux. You will however find Linux as a useful host development system or Windows with an SSH terminal access tool such as Putty, MobaXterm, or equivalent.Modules
Introduction
1
Discussions
- Introduce Yourself
1
Videos
- Course Introduction
3
Readings
- EXTRA HELP: Home Lab Set Up
- EXTRA HELP: Code Walkthroughs and Demonstrations
- Scan and Question RTES Terminology
Real-Time Challenges and Concepts
- Assignment 1 : Hello World ! - Simple thread Creation
3
Videos
- Predictable response software
- Simple Linux real-time services compared to non-real-time - introduction
- Simple Linux real-time services compared to non-real-time - conclusion
1
Quiz
- Basic Concepts and Terminology
Real-Time Fundamentals and Architecture Styles
2
Videos
- Introduction to Scheduling Theory for Real-Time Systems
- RM Optimal Priority Policy and Service Request and Response Timeline
1
Readings
- EXTRA HELP: Code Walkthroughs and Demonstrations
1
Quiz
- Scheduling policies
Comparison of Linux POSIX Real-Time Threads to RTOS and MFE (Multi-Frequency Executive)
- Assignment-2 :Multiple Threads
1
Peer Review
- Basic and Multi-Threaded Code Review
2
Videos
- Timing Analysis - Rate Monotonic Priority Assignment Policy By Example
- Challenges with Linux User and Kernel Space Real-Time Applications
1
Readings
- EXTRA HELP: Code Walkthroughs and Demonstrations
1
Quiz
- Services
Module 1 - Review of Concepts Discussed
1
Readings
- Re-Read, Recite, and Review RTES Terminology we Used
1
Quiz
- Module 1 | POSIX Threads and Linux Systems
Real-Time Utility Curves and Practice Creating SRT and HRT Threads
- Assignment 3 : Implementing Linux real-time threads
1
Peer Review
- Assignment 3 : Implementing Linux real-time threads
3
Videos
- Code Demonstration: SMP compared to AMP
- Code Walkthrough: Starter code for AMP using thread affinity
- Real-Time Scheduling Utility Curves
1
Quiz
- Real time Utility curves
Measuring and Tracking Relative and Absolute Time on RT Embedded Systems
1
Peer Review
- CPU Core Affinity and RT Clock Code Review
2
Videos
- Code Walkthrough: RT Clock
- Review of absolute time and date standards and resources
Rate Monotonic Timing Analysis of Feasibility and Safety Margin
2
Videos
- Rate Monotonic Scheduling Analysis by Worst Case Inspection
- Rate Monotonic Scheduling - Feasibility vs. Safety and Exceeding the RM LUB
2
Readings
- Scan and Question Original paper on Rate Monotonic theory (Liu & Layland)
- Optional reading on Linux NPTL and SCHED_DEADLINE
1
Quiz
- Rate Monotonic Scheduling
Review of Concepts and Module 2 Quiz
1
Readings
- Re-Read, Recite, and Review RTES Terminology we Used
1
Quiz
- Module 2 | Real-Time Systems Analysis, Harmonic Services and RMA Scheduling Policy
Fixed Priority RMA - Interference, Preemption and Scheduler State Machine
4
Videos
- Priority Preemptive Scheduler State Machine For Linux and VxWorks
- Service Code Structure driven by Interrupts
- Summary of Key Points and Liu & Layland RMA Uses and Limitations
- More Details on Liu and Layland RMA Limitations and Work-arounds
1
Quiz
- Real-Time Scheduling and Service Requests
Methods of Sequencing Service Requests by Example
1
Peer Review
- Practice Using Generic Sequencer to Create Scenario
3
Videos
- Code Walkthrough: POSIX Software Interval Timer Example
- Code Walkthrough: Generic Sequencing using an Interval Timer
- Comparison of Cyclic Executive, RTOS and Linux RT Service Implementation
Software Scheduling and Real-Time Policies and Schedulers
1
Peer Review
- Using Cheddar to Check Hand Analysis of Schedules
6
Videos
- Introduction to Worst Case Analysis hand diagramming of RM schedules
- Worst Case Analysis schedule where RM fails (above the LUB)
- Example where RM succeeds above the LUB for a harmonic service set
- Example of scheduling above the LUB at 100% utility that is feasible
- Analysis of a harmonic service schedule by hand diagramming for RM and RR
- Introduction to Cheddar RMA Tool
Module 3 Quiz
1
Readings
- Re-Read, Recite, and Review RTES Terminology we Used
1
Quiz
- Module 3 | Review and Basic Timing Analysis by Hand and with Cheddar
Multi-Core Processors - Simple Microcontroller, Real-Time and Advanced
1
Peer Review
- Real-Time Architecture and Configuration for Applications
2
Videos
- Introduction - ARM M-Series, R-Series, and A-Series
- Overview of Single Board Computers used for Real-Time Education
1
Readings
- Space Shuttle Multi-Frequency Executive Architecture
RTOS Options (Open or Proprietary) and OS with POSIX Real-Time Extensions
- Assignment 4 :Pthreads with CPU core affinity in Linux to Emulate AMP
1
Peer Review
- Assignment 4 :Pthreads with CPU core affinity in Linux to Emulate AMP
1
Videos
- Using Linux for this Course - Rationale and Observations
Use of Co-Processors in Real-Time Systems
1
Peer Review
- Using Multiple Cores with Threads to Speed-up Processing
1
Videos
- Code Demonstration: Thread Gridding Concepts for Multi-Core
1
Quiz
- AMP/SMP and Co-Processors
Section 4 Quiz
1
Readings
- Re-Read, Recite, and Review RTES Terminology we Used
1
Quiz
- Module 4 | Gear up for the Final Exam!
Auto Summary
Explore the fundamentals of designing and building microprocessor-based embedded systems with "Real-Time Embedded Systems Concepts and Practices." Guided by Coursera, this professional-level course focuses on using real-time operating systems and Embedded Linux with Raspberry Pi. Perfect for those in Science & Engineering, you'll gain hands-on experience in digital command and control of embedded hardware systems. Part of CU Boulder’s Master’s in Electrical Engineering, it offers flexible subscription options to suit your learning needs.

Sam Siewert