Real-time Programming for Embedded Systems

Home
Courses
Online Classes
Books
E.L.L.K.
Consulting
Downloads
Resources
Contact Us
  •   Introduction - What is a real-time embeddedsystem?
  •  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 Development Environment (IDE)
  • Single board computer with:
    • 186-class processor
    • 128 kbytes of Flash memory and 32 kbytes of static RAM
    • Two serial ports with cables 
    • 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.

Copyright © 2015 Douglas Abbott