An introductory course on software and architecture aspects of embedded systems. Topics include: embedded processor architecture, software architecture and development, communicating with and controlling I/O devices, firmware and embedded operating systems, buses and embedded networks, memory technology and design, and low power design. Hands-on assignments using an ARM SoC development kit will be used to experiment the theory and to build engineering skills. \textbf{Required background:} Fundamentals of Computer Engineering, computer architecture, processor assembly and C programming.