Course Information

18-349: Introduction to Embedded Systems

Units:

12

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 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.

Prerequisites: 18-240 and 18-213
Anti-requisites: 18-342 and 18-348

Last Modified: 2018-04-25 4:47PM

Current session:

This course is currently being offered.

Semesters offered:

  • Fall 2018
  • Spring 2018
  • Fall 2017
  • Spring 2017
  • Fall 2016
  • Fall 2015
  • Fall 2014
  • Fall 2013
  • Fall 2012
  • Fall 2011
  • Fall 2010
  • Fall 2008
  • Fall 2007