Test Your Skills

How good are your embedded programming skills? Test yourself in the Embedded C Quiz or the Embedded C++ Quiz.

Test Your Skills

Newsletter Signup

Want to receive free how-to articles and industry news as well as announcements of free webinars and other training courses by e-mail? Signup now.

Embedded Software Boot Camp

Contact us to bring this course to your company. Or check our training calendar for upcoming public sessions.

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 reliability (and, thereby, safety in certain industries) 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 printed copy of the 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.

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.

Contact us to bring this course to your company. Or check our training calendar for upcoming public sessions.

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.

Comments

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".