12 units
Embedded computing applications far outnumber desktop computers, with billions of microcontrollers produced worldwide each year. Embedded systems vary tremendously, from the single 8-bit processor in a thermostat, to high performance processors in a digital camera, to dozens of networked processors in an automobile. Despite this diversity of applications, there are core technology and system-level skills needed by any embedded system designer that form the content of this course. The emphasis of this course will be at the system layer where hardware meets software, with plenty of hands-on experience at "bare metal" programming. Topics typically covered include embedded computing platforms (hardware, microcontroller instruction sets, software in both assembly language and C); interacting with the external world (analog I/O, serial ports, control); system-level engineering (design cycle, architectural patterns); real-time operation (timers, interrupts, concurrency); constraints and optimization (economics, power, performance); and a survey of techniques important for building systems that work in the real world (debug, test, robust design, dependability, ethical/societal issues). Weekly hands-on hardware and software experiences with a 16-bit microcontroller module will tie directly to lectures to reinforce core skills.
4 hrs. lec., 1 hr. rec., 3 hrs. lab
Prerequisites: 18-240 and 15-213
Last updated on March 14, 2007
Computer Hardware
Coverage, Depth
F07, F06
Hover over a semester for more information.
Please note that the course history information is incomplete and/or may reflect different courses offered under the same course number.