The Real-Time Embedded Systems specialization is a series of four course taking you from a beginning practitioner, to a more advanced real-time system analyst and designer. Knowledge and experience gained on hard to master topics such as predictable response services, when to allocate requirements to hardware or software, as well as mission critical design will enhance your engineering talent. You will gain experience building a simple, but real, system project with real-time challenges, that will boost your confidence.
The hands-on, at home, project hardware is affordable, widely available, and quick-time-to market methods leverage Linux real-time extensions, open source RTOS (Real-Time Operating System), as well as tried and true cyclic executives.
After you complete all four courses in the series, you can consider yourself an intermediate to more advanced real-time system practitioner. This knowledge is invaluable for medical, aerospace, transportation, energy, digital entertainment, telecommunications, and other exciting embedded career options.
The series stresses hands-on practice and assessment of your learning progress, not only based on knowledge acquisition, but by teaching you to put theory into practice and how to evaluate design options and make optimal choices. The unique final project allows you to see real-time challenges with your eyes, to debug interactively, and build a simple at-home detection, tracking and synchronization system.
Course 1: Real-Time Embedded Systems Concepts and Practices - Offered by University of Colorado Boulder. This course can also be taken for academic credit as ECEA 5315, part of CU Boulder’s Master of ... Enroll for free.
Course 2: Real-Time Embedded Systems Theory and Analysis - Offered by University of Colorado Boulder. This course can also be taken for academic credit as ECEA 5316, part of CU Boulder’s Master of ... Enroll for free.
Course 3: Real-Time Mission-Critical Systems Design - Offered by University of Colorado Boulder. This course can also be taken for academic credit as ECEA 5317, part of CU Boulder’s Master of ... Enroll for free.
Course 4: Real-Time Project for Embedded Systems - Offered by University of Colorado Boulder. This course can also be taken for academic credit as ECEA 5318, part of CU Boulder’s Master of ... Enroll for free.
This course can also be taken for academic credit as ECEA 5316, part of CU Boulder’s Master of Science in Electrical Engineering degree.
This course provides an in-depth and full mathematical derivation and review of models for scheduling policies and feasibility determination by hand and with rate monotonic tools along with comparison to actual performance for real-time scheduled threads running on a native Linux system. By the end of this course the learner will be able to full derive the fixed priority rate monotonic least upper bound for feasibility as well as justifying the rate monotonic policy and will be able to compare to dynamic priority scheduling including earliest deadline first and least laxity policies.
At the end of this course learners will be able to fully derive and explain the math model for the rate monotonic least upper bound as well as performing timing diagram analysis for fixed and dynamic priority software services. Tools to provide analysis will be learned (Cheddar) to automate timing analysis and to compare to actual performance.
Specific objectives include:
● Rate monotonic theory (complete math models)
● Differences between fixed priority rate monotonic policy and dynamic priority earliest deadline first and least laxity policies
● Scheduling theory and practice writing code for multi-frequency executives, priority preemptive RTOS services, and real-time threaded services on traditional operating systems (Linux)
● Building a simple Linux multi-service system using POSIX real-time extensions on Raspberry Pi 3b using sequencing and methods to log and verify agreement between theory and practice
● Timing diagram generation and analysis using Cheddar
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 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 can also be taken for academic credit as ECEA 5318, part of CU Boulder’s Master of Science in Electrical Engineering degree.
The final course emphasizes hands-on building of an application using real-time machine vision and multiple real-time services to synchronize the internal state of Linux with an external clock via observation. Compare actual performance to theoretical and analysis to determine scheduling jitter and to mitigate any accumulation of latency. The verification of the final project will include comparison of system timestamp logs with a large set of images which can be encoded into a video. The final report will be peer reviewed and the captured frames and video uploaded for scripted assessment.
Course Learning Outcomes:
● Outcome 1: Decompose a problem and set of basic real-time requirements into software modules and Linux POSIX real-time threads
● Outcome 2: Analyze services in terms of C (execution time), T (request period), and D (deadlines for completion) to establish feasibility and margin for meeting requirements
● Outcome 3: Design and construct a solution for a native Linux system equipped with a webcam to verify and demonstrate system synchronization using machine vision processing