Real-Time Embedded Systems Concepts and Practices
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Real-Time Embedded Systems Concepts and Practices
This course is part of Real-Time Embedded Systems Specialization
Instructor: Sam Siewert
20,806 already enrolled
Included with
Learn more
Ask Coursera
98 reviews
Recommended experience
98 reviews
Recommended experience
What you'll learn
A beginning practitioner's understanding of rate monotonic theory, analysis, and practices for embedded systeems.
Implementation of real-time services as POSIX threads.
Difference between Linux user space and kernel space.
Skills you'll gain
Tools you'll learn
Details to know
11 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 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. This course includes specific hardware and software requirements. Please review the FAQ below for complete details.
This module gives an introduction to real-time theory , challenges faced in designing real-time systems and scheduling policies implemented while comparing the Linux POSIX real-time threads to RTOS and MFE systems.
What's included
8 videos15 readings4 assignments2 programming assignments1 peer review1 discussion prompt
8 videosβ’Total 199 minutes
- Course Introductionβ’13 minutes
- Predictable Response Softwareβ’37 minutes
- Simple Linux Real-Time Services Compared to Non-Real-Time - Introductionβ’18 minutes
- Simple Linux Real-Time Services Compared to Non-Real-Time - Conclusionβ’37 minutes
- Introduction to Scheduling Theory for Real-Time Systemsβ’30 minutes
- RM Optimal Priority Policy and Service Request and Response Timelineβ’10 minutes
- Timing Analysis - Rate Monotonic Priority Assignment Policy By Exampleβ’8 minutes
- Challenges with Linux User and Kernel Space Real-Time Applicationsβ’46 minutes
15 readingsβ’Total 141 minutes
- Course Updates and Accessibility Supportβ’1 minute
- Non-Credit Students: Welcome and Where to Find Helpβ’10 minutes
- Hardware & Software Requirementsβ’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
- POSIX Pthread Programming Resourcesβ’10 minutes
- Basic Makefile Skills by Exampleβ’10 minutes
- EXTRA HELP: Home Lab Set Upβ’10 minutes
- EXTRA HELP: Code Walkthroughs and Demonstrationsβ’10 minutes
- Scan and Question RTES Terminologyβ’10 minutes
- EXTRA HELP: Code Walkthroughs and Demonstrationsβ’10 minutes
- EXTRA HELP: Code Walkthroughs and Demonstrationsβ’10 minutes
- Re-Read, Recite, and Review RTES Terminology we Usedβ’10 minutes
4 assignmentsβ’Total 60 minutes
- Scheduling Policiesβ’15 minutes
- Servicesβ’15 minutes
- Module 1 | POSIX Threads and Linux Systemsβ’15 minutes
- Basic Concepts and Terminologyβ’15 minutes
2 programming assignmentsβ’Total 360 minutes
- Assignment 1 : Hello World ! - Simple thread Creationβ’180 minutes
- Assignment 2: Multiple Threadsβ’180 minutes
1 peer reviewβ’Total 60 minutes
- Basic and Multi-Threaded Code Reviewβ’60 minutes
1 discussion promptβ’Total 10 minutes
- Introduce Yourselfβ’10 minutes
This module describes the utility curves used for analysis of real-time systems along with Rate Monotonic Scheduling Policy and its Least Upper Bound Condition. It also describes the absolute time and date standards which are critical parameters for real-time services.
What's included
7 videos3 readings3 assignments1 programming assignment2 peer reviews
7 videosβ’Total 124 minutes
- Code Demonstration: SMP Compared to AMPβ’6 minutes
- Code Walkthrough: Starter Code for AMP Using Thread Affinityβ’7 minutes
- Real-Time Scheduling Utility Curvesβ’18 minutes
- Code Walkthrough: RT Clockβ’15 minutes
- Review of Absolute Time and Date Standards and Resourcesβ’35 minutes
- Rate Monotonic Scheduling Analysis by Worst Case Inspectionβ’16 minutes
- Rate Monotonic Scheduling - Feasibility vs. Safety and Exceeding the RM LUBβ’27 minutes
3 readingsβ’Total 320 minutes
- Scan and Question Original Paper on Rate Monotonic Theory (Liu & Layland)β’180 minutes
- Optional Reading on Linux NPTL and SCHED_DEADLINEβ’120 minutes
- Re-Read, Recite, and Review RTES Terminology we Usedβ’20 minutes
3 assignmentsβ’Total 90 minutes
- Real-Time Utility Curvesβ’30 minutes
- Rate Monotonic Scheduling β’30 minutes
- Module 2 | Real-Time Systems Analysis, Harmonic Services and RMA Scheduling Policyβ’30 minutes
1 programming assignmentβ’Total 180 minutes
- Assignment 3: Implementing Linux Real-Time Threadsβ’180 minutes
2 peer reviewsβ’Total 120 minutes
- Assignment 3: Implementing Linux Real-Time Threadsβ’60 minutes
- CPU Core Affinity and RT Clock Code Reviewβ’60 minutes
This module covers the methods of sequencing of service requests along with software scheduling and real-time scheduling policies.
What's included
13 videos1 reading2 assignments2 peer reviews
13 videosβ’Total 187 minutes
- Priority Preemptive Scheduler State Machine For Linux and VxWorksβ’22 minutes
- Service Code Structure driven by Interruptsβ’15 minutes
- Summary of Key Points and Liu & Layland RMA Uses and Limitationsβ’31 minutes
- More Details on Liu and Layland RMA Limitations and Work-aroundsβ’28 minutes
- Code Walkthrough: POSIX Software Interval Timer Exampleβ’8 minutes
- Code Walkthrough: Generic Sequencing using an Interval Timerβ’10 minutes
- Comparison of Cyclic Executive, RTOS and Linux RT Service Implementationβ’30 minutes
- Introduction to Worst-Case Analysis: Hand Diagramming of RM Schedulesβ’9 minutes
- Worst-Case Analysis: Schedule Where RM Fails (Above the LUB)β’6 minutes
- Example Where RM Succeeds Above the LUB for a Harmonic Service Setβ’7 minutes
- Example of Scheduling Above the LUB at 100% Utilization That Is Feasibleβ’6 minutes
- Analysis of a Harmonic Service Schedule by Hand Diagramming for RM and RRβ’7 minutes
- Introduction to Cheddar RMA Toolβ’8 minutes
1 readingβ’Total 10 minutes
- Re-Read, Recite, and Review RTES Terminology we Usedβ’10 minutes
2 assignmentsβ’Total 30 minutes
- Real-Time Scheduling and Service Requestsβ’15 minutes
- Module 3 | Review and Basic Timing Analysis by Hand and with Cheddarβ’15 minutes
2 peer reviewsβ’Total 390 minutes
- Practice Using Generic Sequencer to Create Scenarioβ’240 minutes
- Using Cheddar to Check Hand Analysis of Schedulesβ’150 minutes
This module discusses the use of multi core microprocessors for real-time applications and gives an overview of RTOS Options (Open and Proprietary) and OS with POSIX Real-Time Extensions for real-time systems.
What's included
4 videos2 readings2 assignments1 programming assignment3 peer reviews
4 videosβ’Total 46 minutes
- Introduction - ARM M-Series, R-Series, and A-Seriesβ’8 minutes
- Overview of Single Board Computers used for Real-Time Educationβ’15 minutes
- Using Linux for this Course - Rationale and Observationsβ’11 minutes
- Code Demonstration: Thread Gridding Concepts for Multi-Coreβ’11 minutes
2 readingsβ’Total 130 minutes
- Space Shuttle Multi-Frequency Executive Architectureβ’120 minutes
- Re-Read, Recite, and Review RTES Terminology we Usedβ’10 minutes
2 assignmentsβ’Total 45 minutes
- AMP/SMP and Co-Processorsβ’30 minutes
- Module 4 | Gear up for the Final Exam!β’15 minutes
1 programming assignmentβ’Total 180 minutes
- Assignment 4: Pthreads with CPU core affinity in Linux to Emulate AMPβ’180 minutes
3 peer reviewsβ’Total 450 minutes
- Real-Time Architecture and Configuration for Applicationsβ’270 minutes
- Assignment 4: Pthreads with CPU Core Affinity in Linux to Emulate AMPβ’60 minutes
- Using Multiple Cores with Threads to Speed-up Processingβ’120 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
- U
University of Colorado Boulder
Course
- Status: Free TrialU
University of Colorado Boulder
Course
- Status: Preview
Why people choose Coursera for their career
Learner reviews
- 5 stars
53.06%
- 4 stars
20.40%
- 3 stars
6.12%
- 2 stars
7.14%
- 1 star
13.26%
Showing 3 of 98
Reviewed on Nov 18, 2022
An excellent course,very practical, rigorous and very well explained. 
Reviewed on Mar 31, 2024
I learned so much in this course, I fully recomend it.
Reviewed on Oct 30, 2022
Very informative, it might need some code updates but everything is alright.
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,
