"Barr Group training courses should be required before writing any embedded code."

General Dynamics

Newsletter Signup

Sign up for our newsletter and receive free how-to articles and industry news as well as announcements on free webinars and other Barr Group Training course information by e-mail. Signup Today!

Embedded Software Boot Camp

Barr Group's Embedded Software Boot Camp is an efficient and cost-effective hands-on training program for embedded programmers. In just 4-days and through a mix of lectures and programming exercises on actual embedded hardware, attendees learn how to use the C programming language to create portable device drivers, use real-time operating systems, and a whole bunch more. Back at the office, attendees will be able to immediately put the skills learned in this course to use in their design.

Upcoming Sessions

This course will be open to the public in the following dates and locations:

Date(s) Location Price*
Oct 24-27 Boston, Massachusetts $1,999 Register>

* Prices will be discounted 20% for groups of 3 or more and increased 15% for late registration during the final 2 weeks.

To be automatically notified, by email, of future public training dates and locations, simply sign up here.

Course Length

  • 4 days (hands-on)


  • Embedded software developers (desiring to improve code reliability/portability)
  • Electronics designers (desiring to move more into software development)
  • Other programmers (desiring to move into the field of embedded systems)


The following outline is provided as a summary of the major course topics and should not be taken as literally the section-by-subsection lecture breakdown.

  • Introduction
  • Embedded C Fundamentals
    • Fixed-Width Integers
    • Binary Data Manipulation
    • Fixed and Floating Point Math
    • Performance Improvement
    • Data Storage and Lifetimes
    • The World Before main()
  • Peripheral Control
    • Peripheral Registers
    • Memory-Mapped I/O
    • Struct Overlays
    • Volatile Keyword
    • Bitmasks vs. Bitfields
    • Device Drivers
  • Interrupt Handling
    • Interrupt Service Routines
    • Vector Tables
    • Hardware Hurdles
    • Disabling Interrupts
    • Interrupt Latency
  • Language Choice
    • C vs. Assembly
    • C vs. C++
  • Multitasking Fundamentals
    • Tasks and Task States
    • Scheduling Points
    • Context Switching
    • System Calls
    • Mutual Exclusion
  • Intertask Communication
    • Semaphores
    • Mailboxes
    • Message Queues
    • Event Flags
    • Starvation and Deadlock
  • Related Topics
    • Memory Management
    • Timer Ticks
    • OS Hooks
    • Interrupt Handling
  • Key Takeaways

During the course, attendees will independently complete approximately a dozen hands-on programming exercises, including a large capstone project. These exercises are interspersed with the lectures. Attendees will use their computer to compile their programs and then download them for execution on an embedded target board with its own processor, memory, and peripherals.


Attendees should already be familiar with the C or C++ programming language before taking this course. Prior experience programming for embedded systems may be beneficial but is not necessary.


Each student will need a computer, such as a laptop, running XP or a newer version of Windows with an available USB port and administrator privileges. (Windows over Mac OS X generally works.)

Find out More

Please contact us today to find out more about this course or to enquire about an on-site training at your company.

Related Courses

If you are viewing this page, the following Barr Group training courses may also be of interest: