Course Summary
Learn how to develop real-time embedded systems with this hands-on project-based course. Utilize industry-standard tools and techniques to create functional systems and gain practical experience.Key Learning Points
- Develop practical skills in real-time embedded systems
- Gain hands-on experience with industry-standard tools
- Create functional systems through a project-based approach
Related Topics for further study
- Real-time embedded systems
- Industry-standard tools
- Project-based approach
- Firmware development
- Hardware-software integration
Learning Outcomes
- Develop real-time embedded systems using industry-standard tools
- Integrate hardware and software to create functional systems
- Utilize a project-based approach to gain practical experience
Prerequisites or good to have knowledge before taking this course
- Basic programming knowledge (C or C++)
- Familiarity with microcontrollers and electronics
Course Difficulty Level
IntermediateCourse Format
- Project-based
- Hands-on
- Self-paced
Similar Courses
- Embedded Systems - Shape The World: Microcontroller Input/Output
- Introduction to Embedded Systems Software and Development Environments
Notable People in This Field
- Jack Ganssle
- Colin Walls
Related Books
Description
This course can also be taken for academic credit as ECEA 5318, part of CU Boulder’s Master of Science in Electrical Engineering degree.
Knowledge
- Real-time system design concepts and decomposition of functions and indentification of key services
- De-coupling of I/O from real-time processing to avoid response time over-runs
- Using AMP design principles with Rate Monotonic policy, analysis and theory
- Using AMP design principles with best-effort and parallel real-time co-processing
Outline
- RTES Project Goals and Objectives
- Course Goals and Learning Objectives
- Course Detailed Overview with Assumed Prior Knowledge
- Background Concepts Used for RTES Project
- Detecting External Clock "Tick" with Machine Vision
- Final Peer Review Assessment of RTES Project
- Verifying Frame Synchronization to External Clock on Every Frame
- RTES Project Demonstration of 1 Hz Solution
- RTES Project Demonstration of 10 Hz Solution
- Design Notations Used for Software Services
- Code Walkthrough: V4L2 (Video for Linux 2) Camera Interface Demonstration
- Code Demonstration: Frame Difference Interactive OpenCV Example
- Use of Cheddar for Timing Analysis
- General Methods for Tracing and Profiling RT Embedded Systems
- Linux Syslog, GNU Profiling, and HTOP for RTES Project
- EXTRA HELP - Home Lab Setup for RTES Project
- More Software Design Methods and Notations
- Basics of Real-Time Systems
- Completion of RTES Project and Preliminary Functional Testing
- Simple Design that Does Not Work and Why
- Better Design Example, But Not Fault Tolerant
- Better Design Somewhat Fault Tolerant
- Best Practice Design Example
- External Clock Tick Detection Starter Code Walk-through
- Simple Frame Capture of 1800 Frames in One Process
- Sequencing RT Services Using a Software Interval Timer
- Request for Proposal - Goals and Objectives for the Project
- Download RTES Project Starter Code and Build and Review
- Project Design , Implementation and Functional Testing
- Timing Analysis — Comparison of Actual to Predicted Service Time Events
- Coding Tips and Debugging
- Analysis: Methods of Multi-Service Timing Verification
- Review of Common Mistakes
- Most Common RTES Project Errors - A List to Consider
- Methods for System Verification and Validation of RTES project
- Using Sysprof and Kernel Shark on Linux
- Wireshark Network Transport Tracing with Linux
- Code Walk-through: Demonstration of Syslog for Timing Analysis
- Final Project Review and Presentation
- Example Peer Review Design Demonstration - V4L Example
- Example Peer Review Design Walk-through - OpenCV Example
- Take-Away and Final Notes for Course
- Project and Final Take-Away Major Concepts
Summary of User Reviews
Learn about real-time project embedded systems on Coursera. Users have given positive reviews about the course. One aspect that many users thought was good is the hands-on approach to learning.Pros from User Reviews
- Hands-on approach to learning
- In-depth explanation of concepts
- Good practical exercises
Cons from User Reviews
- Some users found the course to be too basic
- Lack of interaction with instructors
- Not enough explanation for beginners