EE 505 Embedded Systems
This practical, hands-on course introduces the concepts and techniques needed to design and implement computing systems having real-time response requirements in an embedded environment. It focuses on real-time aspects of programming languages, real-time operating system (RTOS) kernels, and hardware architectures to design embedded systems that interact with the physical world through sensors and actuators with predictable latency.
The laboratory exercises help students to acquire skills in the design, implementation, and debugging of embedded real-time functionality. A comprehensive final project enables students to design, implement, and evaluate a prototype embedded system.
Topics covered include embedded processor architectures; interaction with devices (buses, memory architectures, memory management, device drivers); concurrency (software and hardware interrupts, timers); real-time principles (multi-tasking, scheduling, synchronization); implementation trade-offs, profiling and code optimization (for performance and memory); embedded software (exception handling, loading, mode-switching).