COURSE DESCRIPTION
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 cell-phones, portable
gaming devices, robots, PDAs, 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, the
Mars rover, 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 and industry-strength development tools, students will
acquire skills in the design/implementation/debugging of core embedded
real-time functionality.
Pre-requisites: 18-240 and 15-213
Format: 3 hrs lecture, 9 hrs lab
Lectures: Thurs, 10.30-11.50am, DH A302 & Fri 11:00-11:50 am, MM 103
INSTRUCTOR
Priya Narasimhan
Office: CIC 2202
Tel: 412-268-8801
Email: priya at cs.cmu.edu
Twitter: @yinzcampriya