Hold on just a sec...
3 credits
Fall 2025 Lecture Upper DivisionThis course provides an introduction to software design for embedded computing systems. Major topics covered include the importance of time and timing in embedded systems, embedded software organization (FSM-based program design, polled loop systems, foreground-background systems, event driven architectures, multi-tasking, etc.), real-time scheduling and real-time operating systems, wired/wireless networked embedded systems, debugging techniques for embedded software, and advanced topics such as memory-safe programming, implementing reentrant functions, and minimizing code space, memory usage, and power consumption. The course features a series of integrated assignments using state-of-the-art embedded hardware platforms, embedded software design tools, and real-time operating systems that reinforce the concepts taught in the lectures.
Learning Outcomes1Understand the embedded software design process and tools used.
2Understand various software architectures for embedded systems.
3Apply advanced debugging techniques to embedded software.
4Analyze and implement real-time embedded applications.
5Design and implement distributed applications for networked embedded systems.