VOOZH about

URL: https://www.coursera.org/learn/real-time-embedded-systems-concepts-practices

⇱ Real-Time Embedded Systems Concepts and Practices | Coursera


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

20,806 already enrolled

Included with

β€’

Learn more

Ask Coursera

Gain insight into a topic and learn the fundamentals.
3.9

98 reviews

Intermediate level

Recommended experience

Flexible schedule
5 weeks at 10 hours a week
Learn at your own pace
Build toward a degree

Gain insight into a topic and learn the fundamentals.
3.9

98 reviews

Intermediate level

Recommended experience

Flexible schedule
5 weeks at 10 hours a week
Learn at your own pace
Build toward a degree

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.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

11 assignments

Taught in English

Build your subject-matter expertise

This course is part of the Real-Time Embedded Systems Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • 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

Instructor ratings
4.3 (46 ratings)
University of Colorado Boulder
4 Coursesβ€’25,839 learners

Explore more from Electrical Engineering

Why people choose Coursera for their career

πŸ‘ Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
πŸ‘ Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
πŸ‘ Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
πŸ‘ Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

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

WS
Β·

Reviewed on Nov 18, 2022

An excellent course,very practical, rigorous and very well explained. 

WA
Β·

Reviewed on Mar 31, 2024

I learned so much in this course, I fully recomend it.

YS
Β·

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.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,