Fundamentals of microcontroller interfacing and embedded system development for OS-based devices. Overview of embedded operating systems and multitasking, common embedded development best practices and pitfalls, device driver development, DMA, and common bus standards. Two hours of lecture and three hours of laboratory each week.