- How To
- About Us
- Contact Us
Embedded Software Boot Camp
Michael Barr and Embedded Software Boot Camp attendees discuss the proper usage of real-time operating systems.
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
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:
- Source code starting points for the exercises,
- An electronic copy of the book Programming Embedded Systems with C and GNU Development Tools by Michael Barr and Anthony Massa,
- An electronic copy of the book Embedded C Coding Standard by Michael Barr,
- An electronic copy of the book Embedded Systems Dictionary by Jack Ganssle and Michael Barr,
- An electronic copy of the book MicroC/OS-III: The Real-Time Kernel, Renesas RX62N Edition by Jean Labrosse,
- Datasheets and User's Manuals for all of the hardware and tools,
- Dozens of articles for in-depth "further reading" on advanced topics, and
- A backup electronic copy of the Embedded Software Field Manual.
- 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.
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 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.
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.