"Introduction to Embedded Systems and Software"
* A First Course on the Fundamentals of Embedded Systems for new Embedded Software Developers
* 2- or 3- Day Intensive Class (with student work exercises)
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 multicore systems-on-a-chip
for embedded multiprocessing is also discussed.
WHO SHOULD ATTEND ?
This course is intended for practicing software developers who will be transitioning into embedded systems software
development. Course participants are expected to be knowledgeable in the C programming language for general
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" .]
For companies who can dedicate 4-5 days of training to its embedded systems software engineers, our course
"Embedded Software Fundamentals" Masterclass provides more extensive introductory training.
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.
Embedded Systems Basics
Embedded Computer Systems Overview
Embedded Systems I/O
Embedded / Real-Time Systems: Definitions and Issues
Introduction to Embedded Software Development: The Host-Target Dichotomy
Survey of Task Schedulers
RTOS Kernel Basics
Introduction to Real-Time Operating Systems
Task States and Task Scheduling
Introduction to Intertask Communication and Synchronization
Message Passing from Task to Task
Exercise: Messages and Message Queues
Semaphores and Shared Data
Exercise: Binary Semaphores
Liveness Issues: Deadlock, Lockout, Starvation
Additional RTOS Services
Exercise: Priority Inversion
Dynamic Memory Allocation
Interrupt Handling in an RTOS Environment
Design of Embedded Applications
Partitioning of Software into Tasks
Schedulability Issues: Hard vs. Soft Real-Time
Rate Monotonic Scheduling
Day 3 Topics: Development of Embedded Applications
Embedded Device Driver Development
Testing: Black Box Approaches
Testing: White Box Approaches
Exercise: White Box Test Planning (as per DO-178B avionic software standard)
"C"-Language in Embedded Systems
Overview of MultiCore MultiProcessing
INSTRUCTOR: Dr. David Kalinsky
Check it out! Get the "flavor" of this course by trying one of the
course's classroom lectures in on-line format: Sample Lecture
|© Copyright 2010, D. Kalinsky Associates, All Rights Reserved.
This page Updated January 1, 2010