Real-time Programming for Embedded Systems


Introduction - What is a real-time embedded
system?

Review of real-time programming background
and theory

Tasking model

Inter-task communication - Solving the
Resource Sharing Problem

Real-time design issues

Problems with Solving the Resource Sharing
Problem

The Paradigm Embedded IDE

Introducing MicroC/OS

Hardware and target dependencies

Building and running a data acquisition
application

Debugging Embedded Systems

Design and Implementation of MicroC/OS

"Upgrades" to MicroC/OS

Writing an interrupt-driven device driver

 

Back to Courses Page

 

Programming for embedded systems is an entirely different discipline from traditional “desktop” or main-frame programming. An embedded system must be able to respond to external events in a predictable, reliable way. Real-time programs must not only execute correctly, they must execute “on time”. A late answer is a wrong answer.

Multitasking has proven to be a powerful paradigm for building reliable and understandable real-time programs. This intensive three-day seminar provides a practical introduction to the concepts of multitasking with particular emphasis on embedded applications.

Through a combination of lectures and practical hands-on lab work, seminar participants will gain a fundamental understanding of real-time programming principles and techniques for applying these principles to real-world design problems. Each participant receives a development kit consisting of:

Integrated software development environment (IDE)
 

Single-board computer with:
 
bullet

186-class processor

bullet

128 kbytes of Flash memory and
32 kbytes of static RAM

bullet

Two serial ports with cables

bullet

Digital and analog I/O
 

In addition to writing embedded applications, you’ll learn to design and code interrupt-driven device drivers. You’ll also learn a wide range of techniques for debugging and troubleshooting multi-tasking code.

Finally, we go “under the hood” to explore the design and implementation of MicroC/OS, a typical pre-emptive multitasking kernel. By examining the internal workings of a multitasking kernel, you gain valuable insights into the nature of preemptive programming, its benefits and challenges.

 

 

Web Design by cactuslady@cactusweb.net - 2006
Copyright © 2000, 2006 Douglas Abbott