The advanced study of microcontroller-based hardware and software applied to real-time embedded systems. Includes embedded software design, programming microcontrollers in C, real-time kernels and kernel services, hardware and software applications and testing techniques.