Embedded Software Fundamentals Masterclass
|
|
|
| |
|
|
Course Highlights:
This masterclass is a comprehensive training that covers the fundamentals for embedded systems and provides the necessary skills on how to identify and correct defects in real-time software systems. The training comprises of 2 modules:Introduction to Embedded Systems and Software and Debugging Real-Time Software
Module 1: Introduction to Embedded Systems and Software:
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. Different design approaches are shown for soft- and hard- real time systems. In addition, both
mathematical and empirical development and debugging tools will be studied. The special facilities of the "C"
programming language for embedded software development can be surveyed, as well as more disciplined
approached to "C" language programming for use in critical systems.
Module 2: Debugging Real-Time Software
This course examines the activities involved in discovering and correcting errors, flaws, faults and failures in real-time
and embedded systems software.
The class begins with a presentation of the main steps and guidelines for identifying and remedying situations in
which real-time and embedded software is not working correctly. This is followed by a survey of the wide range of
categories of bugs from which such software can suffer . The class then quickly focuses in on a detailed discussion
of the "top 5" kinds of bugs that can be "project killers" or "product killers", including stack overflows, race conditions,
deadlocks, timing problems, and re-entrancy conditions. Emphasis is placed on multitasking and timing behaviors,
rather than on general data processing issues.
The class continues with an examination of debugging tools that are helpful in real-time software development, such
as low-level monitors, and high-level RTOS-aware system debuggers. 'Liveness' issues including deadly embrace,
lockout, memory starvation and CPU starvation are discussed in depth. As are the special sorts of bugs that tend to
create problems in Interrupt Service Routines ("ISRs"). Attendees learn how to evaluate configuration and capacity
needs, as well as to examine design dangers such as interrupt overflow. The class continues with techniques for
quantitative evaluation of timing performance bugs in real-time software.
This course is not a general course about software debugging, but rather it is highly focused on the debugging of
embedded, time-constrained, resource-constrained multitasking software that may run under the control of a modern
real-time operating system ("RTOS").
Objective of the course
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 and the skills necessary to identify and correct defects in software
for real-time computer systems developed with or without an RTOS. This is a very practical,
results-oriented course that will provide knowledge and skills that can be applied immediately.
Who Should Attend:
This course is intended for practicing software developers who will be transitioning into embedded systems software
development and have responsibility for planning, implementing and debugging the
software for real-time and embedded computer systems.
Course participants are expected to be knowledgeable in the C programming language for general
applications.
This is a course for engineers working in industry with less than a year of experience in the specifics of embedded
systems development. [For those with more experience, we recommend the advanced course "Architectural Design of Real-Time Software" .]
INSTRUCTOR: Dr. David Kalinsky
Dr David Kalinsky has more than thirty years of experience in the design and construction of real-time and embedded
computer systems software. He is a popular lecturer and seminar leader on technologies for embedded software
development, appearing before audiences of professional engineers in North America, Europe and Israel. David
regularly presents classes at the Embedded Systems Conferences on topics such as "Architectural Design of Device
Drivers" and "Principles of High Availability Embedded Systems Design".
He has built and managed high-tech training programs on aspects of software engineering for the development of
real-time and embedded systems for a number of Silicon Valley companies. He has also been involved in the design
of many embedded medical and aerospace systems. In addition, he has in the past developed and taught training
courses on a number of major real-time operating systems (RTOSs), including VRTX, pSOS, VxWorks, OSEK / VDX,
Nucleus, OSE and others. With his broad experience, he has trained thousands of embedded systems software
engineers and architectural designers throughout the world.
|
We are a professional organisation providing training services to companies. We offer a comprehensive range of training courses, workshops and seminars covering every aspects relating to engineering.
We provide various training programs that meet the immediate and future needs of engineers. The training is organised through seminar style, hands-on workshop, project-based tutorial or a mixture to bring the maximum learning benefits to the enginners. |
|
We have a quality pool of leading authorities, worldwide experts and fully trained up professionals who are constantly striving to uncover the pitfalls and best practices of modern technology development. |
 |
|