This course introduces the main hardware and software elements of embedded systems and covers the fundamental concepts, design techniques,, and architecture and programming of embedded processors. Also, real-time operating system (''RTOS'') kernels and the design and development of multitasking code and application software are presented. Moreover, it covers interfacing, device drivers, and input/output devices and applications of embedded systems.