ECEA 5307 Embedded System Topics and Project

3rd course in the Advanced Embedded Linux Development​.

Instructor: Dan Walkes

This course is used as the capstone in a three course sequence, including Linux System Programming and Introduction to Buildroot and Linux Kernel Programming and Introduction to Yocto Project.  Both of these courses must be completed before starting this course.

This course builds on the content in the previous two prerequisite courses to develop a final project of your choosing targeting Linux device targeting hardware.  The final project is delivered using concepts from Agile Scrum.  Several pertinent, recent, and relevant Embedded System development related topics are covered as a part of the course curriculum, which you may optionally choose to incorporate into your final project.

Prior knowledge needed: 

Learning Outcomes

  • Understand additional Buildroot tips for working with Hardware
  • Understand Agile Scrum methodology
  • Understand dependency generation for C projects and various options to generate dependencies
  • Learn about Application Containers and the use of Docker on Embedded Devices
  • Learn about Read Only Root Filesystems and their use in Embedded Systems
  • Learn about MQTT and its use in commercial IoT Platform Offerings
  • Understand basic concepts and strategies for Device Update on Linux platforms
  • Understand the role of Bootloaders in a Linux Embedded System
  • Understand the role of Device Trees in a Linux embedded system
  • Understand the basics of Linux Networking and Network Hardware
  • Understand the basics of C++ templates and the STL
  • Understand common workflows used for Git based projects

Syllabus

Duration: 12 hours

This module will provide an overview of the requirements for your Final Project, as well as introduce Agile Scrum concepts we will use for the project development.  We'll discuss some Buildroot related hints related to supporting a physical hardware platform for those who plan to use Buildroot in their final project.  In addition, we'll cover some topics which are relevant as we move to a physical hardware platform, including bootloaders, device trees, and linux networking.

Duration: 12 hours

In this module you will complete the first iteration of your final project implementation.You will also learn about topics which could potentially be incorporated into your final project, or are otherwise relevant for modern embedded system projects, including Linux Device Update, MQTT and IoT, Read Only Root Filesystems, and Application Containers and Docker for Embedded.

Duration: 11 hours

In this module you will complete the second iteration of your final project implementation.You will also learn about topics which could potentially be incorporated into your final project, or are otherwise relevant for modern embedded system projects, including Git Workflows, C++ Templates and STL, and C Dependency Generation.

Duration: 12 hours

In this module you will complete the third and final iteration of your final project implementation.You will also learn about Software Testing and Software Test strategies relevant to Embedded System development.

Duration: 1 hour

Demonstrate mastery of the material presented in this course.

To learn about ProctorU's exam proctoring, system test links, and privacy policy, visit www.colorado.edu/ecee/online-masters/current-students/proctoru.

Grading

Assignment
Percentage of Grade
Final Project Peer Review
10%
Final Project Sprint 1
25%
Final Project Sprint 2
25%
Final Project Sprint 3
25%
Final Project Demo Video and Outline Updates 
10%
ECEA 5307 Final Exam5%

Letter Grade Rubric

Letter Grade 
Minimum Percentage

A

93%

A-

90%

B+

87%

B

83%

B-

80%

C+

77%

C

73%

C-

70%

D+67%
D60%

F

0%