Introduction to Embedded Systems and Software
Duration: 2 or 3 days
Number of participants: recommended optimum 15, maximum 25
The primary goal of this course is to give the participant the concepts and techniques necessary to develop software for embedded computer systems with or without a real-time operating system. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately.
This course introduces the concepts shared by most embedded systems and their software. It also introduces the techniques used in the development of embedded multitasking application software. The course begins with the fundamental elements of embedded systems hardware and software, including their design and development. Fundamental processor and operating system concepts relevant to multitasking systems are introduced, with focus on the basic services provided by off the shelf real-time operating system (RTOS) kernels.
The course then introduces the students to multitasking application software design, using many application examples. Design approaches are shown for soft- as well as hard- real time systems. In addition, both mathematical and empirical development and debugging tools are studied. The special facilities of the C programming language for embedded software development are surveyed. On the third day of the course, special topics are given in-depth attention – including embedded device driver development, testing and debugging of embedded software and systems. The usage of multi-core systems-on-a-chip for embedded multiprocessing is also discussed.
This course is intended for practicing software developers who will be transitioning into embedded systems software development. This is a course for engineers working in industry with less than a year of experience in the specifics of embedded systems development.
For companies who can dedicate 4-5 days of training to its embedded systems software engineers, our course “Embedded Software Fundamentals” provides more extensive introductory training.
Course participants are expected to be knowledgeable in the C programming language for general applications.
The course is based on presentation with student work exercises.