- How To
Embedded Software Boot Camp
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
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:
- 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.
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.
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, the 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.