Sign Up Now

Receive Michael Barr's Firmware Update ® newsletter for free how-to articles and industry news by e-mail. Sign up now.

Bookmark It

Bookmark this page or share it with a colleague.

Embedded Software Boot Camp

Michael Barr and Embedded Software Boot Camp attendees discuss the proper usage of real-time operating systems.

A public session is coming to Palo Alto, CA April 27 - May 1. Consult our embedded software training calendar for location details and pricing. Register Today...

Barr Group's Embedded Software Boot Camp ® is a one-week skills strengthening program consisting of a series of lectures and hands-on exercises. This intense educational (yet fun!) program is designed to quickly and dramatically improve the quality of embedded software created by the individuals and teams that attend.

What You'll Learn

Everyone who attends the Embedded Software Boot Camp learns a ton, including:

  • How to write portable device drivers and interrupt handlers in C
  • How to decide if an RTOS will benefit your application
  • How to architect real-time software to ensure all deadlines are met
  • More than 50 practical tips for reducing firmware bugs
  • How to fix or prevent each of the top 10 firmware bugs

Day-by-Day Schedule

The public Embedded Software Boot Camp runs for 4-1/2 days and is broken up as follows:

Monday - Hardware Interfacing in C (Part 1)

The development of device drivers and embedded software is full of challenges. But it is possible to write easy-to-read portable, bug-free C code to control peripherals ranging from simple timers and UARTs to complex custom FPGAs.

Tuesday (morning) - Hardware Interfacing in C (Part 2)

The hands-on course continues, moving on from peripheral control via memory-mapped I/O, struct overlays, bitmasks and bitfields, to more advanced topics. The capstone exercise involves an interrupt-based device driver.

Tuesday (afternoon) - Multithreaded RTOS Programming (Part 1)

There is a lot of misinformation about multithreaded programming and the use of real-time operating system (RTOS) features. Misinformation and programmer inexperience often lead to poor task partitioning and priority assignments and can lead to system failures such as task starvation, deadlock, or priority inversion.

Wednesday - Multithreaded RTOS Programming (Part 2)

The second half of this course demonstrates the proper use of RTOS primitives such as semaphores, mailboxes/message queues, and event flags to develop multithreaded software.

Thursday - Capstone Programming Project

Wednesday's series of hands-on RTOS exercises culminates in the design of a multithreaded real-time dive computer for underwater SCUBA using those programs as building blocks. Teams comprising 3-4 students aim to complete an entire coding project (from requirements through design and design review to implementation) in a single, fun, learning-packed day.

Friday (half-day) - RTOS Alternatives

Though there are good reasons to use an RTOS in certain applications, this decision also creates a number of problems for embedded software developers. This course examines the tradeoffs as well as a set of alternative approaches to multitasking, including state machine frameworks, that do not require a preemptive scheduler.

Full outlines and other details for each of the three courses on which the Embedded Software Boot Camp is based are available via these links:

What You Get

At the Embedded Software Boot Camp you will receive:

  • A development board with the following hardware features:
    • 32-bit Renesas RX microcontroller (at 96 MHz)
    • Graphics LCD (96 x 64)
    • 10/100 Ethernet port
    • USB Controller (host/device/OTG)
    • CAN interface
    • Temperature sensor
    • 3-axis accelerometer
    • A/D-readable potentiometer
    • PWM-drivable piezo speaker
    • MicroSD memory card slot
    • RS232 serial port connector
    • Software-controllable LEDs (qty. 12)
    • Push buttons to simulate external events (3)
    • On-board microphone, speaker, and audio out
    • I2C and SPI with debug via Beagle connector
    • Electronics breadboard/prototyping area
  • All necessary cables for the development board,
  • On-board J-Link RX debug probe,
  • IAR Embedded Workbench integrated C/C++ compiler-debugger (KickStart Edition),
  • A copy of the 330-page Embedded Software Field Manual book,
  • A printed Exercise Manual with instructions for eight programming exercises and one large SCUBA Dive Computer capstone project plus additional project ideas,
  • A USB thumb drive containing:
  • A CD-ROM containing additional compilers (GNU and Renesas HEW) and example software for the board, plus
  • Source code solutions for all of the exercises including the capstone project,
  • A certificate of course completion, and
  • A few other free trinkets.

Lunch is provided each of the first four days. All exercises are done using the IAR Embedded Workbench integrated C/C++ compiler-debugger on the Renesas target development board. RTOS exercises are based on Micrium's popular, royalty-free MicroC/OS-III real-time operating system.

Target Audience

Typical attendees have from 0 to 15 years of embedded software experience and an electrical engineering, computer science, computer engineering or similar degree. Some have been working in firmware-related areas but are trying to make the switch into full-time embedded software development; others want to deepen their knowledge and strengthen their skills in their chosen career. These well-tested lectures and exercises provide an easy-to-follow path through the material with deep dives on advanced best practices. And there's plenty of even deeper information on the thumb drive to explore after you leave.

Course Developer

Michael Barr

Michael BarrCourse developer Michael Barr is an internationally recognized expert on the design of embedded computer systems. In that role, he has provided expert witness testimony in federal court, appeared on PBS’ American Business Review, and been quoted in various newspapers. He is also the author of three books and more than fifty articles on related subjects. For three and a half years Michael served as editor-in-chief of Embedded Systems Programming. In addition, Michael has been a member of the advisory board of the Embedded Systems Conference. Embedded software he wrote or architected powers millions of products. Michael holds B.S. and M.S. degrees in electrical engineering and has lectured in the Department of Electrical and Computer Engineering at the University of Maryland, from which he also earned an MBA.

Read Michael's blog, follow him on twitter, or view his expert witness resume

Public sessions are planned. Consult our training calendar for location details and pricing.

Alternative: Embedded Software Training in a Box

Do you really want to learn this stuff but can't afford the registration fee or time away for a full-week in person training course? Perhaps our Embedded Software Training in a Box kit is right for you. The kit includes the board and books and other training materials and is based on the same programming exercises.

Of course, Embedded Software Training in a Box lacks the sense of urgency and excitement that stems from live lectures as well as a "Drill Instructor" to answer your questions and keep you motivated and moving forward through the exercises.

Alternative: Embedded Software Training at Your Company

At public sessions of the Embedded Software Boot Camp, the coding exercises are based on a processor board from Renesas and Micrium's MicroC/OS-III RTOS. You will use the IAR Embedded Workbench to compile, download, and test their real-time programs.

For private trainings, the ratio of lecture to hands-on time can be adjusted, as can the total program length in days. This and other options, including choice of target RTOS, processor family, and development tools allow for a significant amount of customization to suit the precise training needs of your team.

To request pricing or dates for private training, or for more information about the Embedded Software Boot Camp program, contact us.


Sounds fantastic!

Here's what a few past Embedded Software Boot Camp attendees had to say on their feedback forms:

"This is an excellent training one must take to really enhance the embedded systems concepts. Strongly recommended to every embedded software engineer."

"I think a lot of embedded software engineers should be forced to take, and learn, the material presented in this course." -- Michael C.

"A great hands-on introduction to embedded programming and RTOSes." -- David S., SAIC

"The Barr Group Embedded Software Boot Camp is an outstanding overview of embedded software development with exercises that really helped solidify the concepts. I recommend it unreservedly." -- Steve F.

"Outstanding presentation of a complex topic." -- Rob V.

"This training should be standard for all new college graduates!" -- Bryan S., General Dynamics C4 Systems

"An enjoyable, challenging way of training a team in a short amount of time." -- Bob M., Ronan Engineering

Here's what attendees had to say about the last public Embedded Software Boot Camp:

"I would like to thank you again for the Embedded Software Boot Camp. I brought all the books back to the company and showed my boss the slides and all the handouts and all that good stuff and he was very impressed. Needless to say he was happy with the investment he made in Barr Group." -- Garrett

"A better use of time and money than the Wind River VxWorks training course I took last month!" -- David, IBM

"Hands on exercises are well thought out." -- Mahesh

"This is one of the best trainings I have ever attended." -- H., Hughes Network Systems

"Fabulous, pertinent, comprehensive and articulate collection of the most important things needed practically. Awesome!" -- Sourabh

"Complete and correct embedded software training." -- P. Sipika, Cengen

"Great material, great instructor." -- Hadi M, Hughes Network Systems

"Thought it was very valuable." -- David

"A great course with a good blend of hands on and lectures." -- Rucha

"Fantastic, insightful, and fun! Thanks, Mike!" -- Larry, Embedics

"Thank you for offering such a great course! It definitely provided a great refresher for many topics as well as introducing me to new concepts that will undoubtedly be valuable in my career. I will certainly recommend this course to others and look forward to any additional courses that you offer. The only critique I truly have is that I would like to have spent more time on the final half day's material on RTOS alternatives." -- Eric, SRA International

"Very well worth the money and time, even for experience engineers." -- Brian, Radio Design Group

"Great course. Great instructor." -- David Linde, Medtronic (Minneapolis, MN)

"Well worth traveling half-way around the world for!" -- Daniel Ng (traveled 30-hours each way from Melbourne, Australia)

"Very complete and good embedded course." -- Silvano Romero, Chamberlain Group (Nogales, Mexico)

"Engineers in the embedded field need to take this course!" -- Ben (Chicago, IL)

I enjoyed the training, learned A LOT, and now realize just how much "I did not know".