Description
Embedded/Real-Time systems are complicated, involving both hardware and software aspects, and have special development environment and performance constraints. Thorough understanding of all the components, how they operate, and how they interact, is essential for improving skills as a Real-Time software engineer, and for leveraging the quality of products. The course reveals and examines the different aspects of developing Embedded/Real-Time systems. It teaches the essentials of developing such systems, by exploring each of the different aspects involved. It starts with presenting the structure of a typical embedded system, then exploring in-depth each one of the hardware components, their functionality and interfaces, placing an emphasis on understanding hardware and software integration. The course provides the participant with a fundamental understanding of Real-Time programming principles and techniques for applying these principles to real-world design problems. It introduces the Real-Time operating system with its specifics and general services. The course also introduces the embedded development environment and X-Development, and Real-Time debugging techniques. All these concepts are presented throughout the course with hands-on exercises, for better utilization of the concepts, combining I/O devices, interrupts, file systems, inter-task communication and synchronization techniques.