Skip to content
CEC Semenster Undefined

Embedded System Design Techniques - Bootloader Design for Microcontrollers

Jacob Beningo -
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software
January 25,
2016
Bootloader Models and Concepts
Updating firmware in the field or over-the-air can take on many different forms, and there are many models a developer can choose from to get the job done. This session will explore these different update models and discuss the advantages and disadvantages of each one as well as when they can be best applied. Attendees will be exposed to requirements development and walk away with an overview of how a bootloader works.
Course Resources
Special Educational Materials
Authentication in IoT Nodes Will Demand SHA and AES SolutionsSecure Remote Updates Extend Embedded System Capabilities and LifetimeCreator 101: CY8CKIT-049 Prototyping Kit Getting StartedListen/Download Archive (mp3)
January 26,
2016
Interface Protocol Design
Developing a robust and reusable interface protocol is a critical step in the bootloader development process. Ensuring that the application update gets onto the microcontroller without errors is no trivial task. This session will walk attendees through the design of a generic bootloader protocol and provide key insights into what it takes to develop a robust bootloader and the associated design documentation.
Course Resources
Special Educational Materials
Authentication in IoT Nodes Will Demand SHA and AES SolutionsSecure Remote Updates Extend Embedded System Capabilities and LifetimeCreator 101: CY8CKIT-049 Prototyping Kit Getting StartedListen/Download Archive (mp3)
January 27,
2016
Setting Up a Test Application
In this session attendees will go through the process of developing a test application for use with a bootloader. The major components, such as linker setup, watchdog maintenance, flash access, and system rebooting, will be discussed in detail. Attendees will walk away with an expert understanding of how to set up and build a test application that can be deployed in the field using a bootloader.
Course Resources
Special Educational Materials
Authentication in IoT Nodes Will Demand SHA and AES SolutionsSecure Remote Updates Extend Embedded System Capabilities and LifetimeCreator 101: CY8CKIT-049 Prototyping Kit Getting StartedListen/Download Archive (mp3)
January 28,
2016
Bootloader Implementation
Implementing a bootloader in C is no trivial exercise. This session will examine the inner workings of a bootloader and walk attendees through the setup of a bootloader implementation. Important concepts, such a vector table locations, application verification, and branch decision-making, will be covered. Attendees will also be exposed to reusable concepts and handling drivers within the bootloading application.
Course Resources
Special Educational Materials
Authentication in IoT Nodes Will Demand SHA and AES SolutionsSecure Remote Updates Extend Embedded System Capabilities and LifetimeCreator 101: CY8CKIT-049 Prototyping Kit Getting StartedListen/Download Archive (mp3)
January 29,
2016
Troubleshooting Techniques
The bootloader development process is riddled with stumbling blocks. In this session, firsthand, real-world experiences with designing and debugging bootloader applications, and how to quickly recognize some of the most common and worst bugs, will be discussed. Attendees will leave the weeklong course with troubleshooting techniques for bootloaders and verification tricks which many developers don't even know exist tucked away in their pockets.
Course Resources
Special Educational Materials
Authentication in IoT Nodes Will Demand SHA and AES SolutionsSecure Remote Updates Extend Embedded System Capabilities and LifetimeCreator 101: CY8CKIT-049 Prototyping Kit Getting StartedListen/Download Archive (mp3)
Instructor
Jacob Beningo
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software

Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 300 articles on embedded software development techniques, has published several books, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan.