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:
- Completion of ECEA 5305 Linux System Programming and Introduction to Buildroot.
- Completion of ECEA 5306 Linux Kernel Programming and Introduction to Yocto.
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 Exam | 5% |
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% |
D | 60% |
F | 0% |