18-349   Introduction to Embedded Systems

Location: Pittsburgh

Units: 12

Semester Offered: Fall, Spring

This practical, hands-on course introduces the various building blocks and underlying scientific and engineering principles behind embedded real- time systems. The course covers the integrated hardware and software aspects of embedded processor architectures, along with advanced topics such as real-time, resource/device and memory management. Students can expect to learn how to program with the embedded architecture that is ubiquitous in smartphones, portable gaming devices, robots, etc. Students will then go on to learn and apply real-time principles that are used to drive critical embedded systems like automobiles, avionics, medical equipment, etc. Topics covered include embedded architectures (building up to modern 16/32/64-bit embedded processors); 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, programming embedded systems). Through a series of laboratory exercises with state- of-the-art embedded processors, sensors, actuators and industry-strength development tools, students will acquire skills in the design/implementation/ debugging of core embedded real-time functionality.