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.
Exploration of RT Challenges and Concepts
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.
Quality of Service Theory from Best Effort to Hard Real-Time
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.
Scheduling and Concept of Real-Time Services
This module covers the methods of sequencing of service requests along with software scheduling and real-time scheduling policies.
Overview of Real-time Hardware Architectures and Software Stacks
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.