18-348 Embedded Systems Engineering
12 units, Carnegie Mellon University
Embedded computing applications far outnumber desktop computers, with billions of microcontrollers produced worldwide each year. Embedded systems vary tremendously, from the single 8bit 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 systemlevel 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 handson 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 IO, digital IO, serial ports, filtering, control, embedded networks systemlevel engineering design cycle, architectural patterns, peer reviews realtime operation timers, interrupts, concurrency, task switching, writing a simple RTOS kernel, scheduling 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, safety, ethicalsocietal issues. Weekly handson hardware and software experiences with a 16bit microcontroller module will tie directly to lectures to reinforce core skills. 4 hrs. lec., 2 hr. rec., 3 hrs. lab. Antirequisites 18342 or 18349
Prerequisites: 18-240 and 18-213
Courseweave needs JavaScript to show sections, workloads and planning tools.