Embedded Bootloader Development From Ground Up™
Last updated 9/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.96 GB | Duration: 6h 48m
Last updated 9/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.96 GB | Duration: 6h 48m
Essentials of Custom Bootloader Development
What you'll learn
Develop a deep understanding of the fundamentals of bootloader development, including the embedded build process and memory layout.
Gain hands-on experience working with linker scripts, creating custom sections, defining memory regions, and storing functions in custom sections.
Develop a multi-slot bootloader system that allows you to store multiple application firmware in memory.
Build complex firmware solutions.
Requirements
No programming experience needed - I'll teach you everything you need to know.
NUCLEO-F411
Description
Get ready to dive into the exciting world of bootloader development with this beginner level course of our bootloader development series on STM32 microcontrollers.Throughout this beginner-friendly course, you will explore the fundamentals of bootloader development, from the build process to the memory model and beyond.Through a number of bite-sized modules, you will learn how to create custom bootloaders that enable you to take control of your firmware and unlock the full potential of your STM32 microcontrollers. You will gain understanding of the embedded build process, the STM32F4 memory model, and the critical role of linkerscripts and the linking process.In addition to theory, you will get hands-on experience working with the linkerscript; creating custom sections, and defining memory regions etc.But that's not all - you'll also have the opportunity to get further hands-on experience with linkerscripts and design and develop your own bootloader. And in the final project, you'll apply your newfound knowledge to create a multi-slot memory system bootloader which is capable of storing multiple firmware applications on the same microcontroller, implement a push-button trigger for entering bootloader mode, and develop a simple communication driver for selecting different firmware applications stored in memory.By the end of this course, you'll have the skills and knowledge needed to confidently develop custom bootloaders for STM32 microcontrollers, opening up new possibilities for firmware updates, recovery, security, and customization.With the flexible online format, you can study at your own pace, from anywhere in the world. Plus, we offer a 30-day money-back guarantee, so you can enroll with confidence. Here's a sneak peek at what you can expect to learn:The Right BootWhat is a boot loader?Why is it needed?The Embedded Build Process and Memory ModelOverview of the Embedded Build ProcessA closer look at the Embedded Build ProcessOverview of the STM32F4 Memory ModelUnderstanding the Linkerscript and Linking ProcessAnalyzing the Linkerscript and Memory LayoutWorking with the LinkerscriptCreating SECTIONS in the LinkerscriptDefining custom MEMORY RegionsStoring functions in Custom SectionsBare-Metal Bootloader DevelopmentImplementing the Jump-to-Application functionImplementing the Default ApplicationSharing functions between the Bootloader and User ApplicationMulti-Slot Bootloader SystemReceiving UART CommandsDesigning the SystemImplementing the Multi-Slot Bootloader System
Overview
Section 1: Introduction
Lecture 1 Downloading CubeIDE
Lecture 2 Installing CubeIDE
Lecture 3 Getting the required documentation
Lecture 4 Getting the required package for bare-metal development
Lecture 5 Testing the project setup
Section 2: The Right Boot
Lecture 6 The Need for a Bootloader
Section 3: Developing Some Generic Drivers
Lecture 7 Important information about this section
Lecture 8 Programming : Enabling the Floating Point Unit (FPU)
Lecture 9 Programming : Developing a UART Driver - Analyzing the Documentation
Lecture 10 Programming : Developing a UART Driver - Listing out the steps
Lecture 11 Programming : Developing a UART Driver - Implementing the Init. function
Lecture 12 Programming : Developing a UART Driver - Implementing the Write function
Lecture 13 Programming : Developing a UART Driver - Testing the Driver
Lecture 14 Programming : Developing the System Timebase - Analyzing the Documentation
Lecture 15 Programming : Developing the System Timebase - Implementing the Init. function
Lecture 16 Programming : Developing the System Timebase - The rest of the functions
Lecture 17 Programming : Developing the System Timebase - Testing the Timebase
Lecture 18 Programming : BSP : Listing the out the Required Functions
Lecture 19 Programming : Writing the LED Driver
Lecture 20 Programming : Writing the PushButton Driver
Lecture 21 Programming : Testing the Board Support Package
Section 4: The Embedded Build Process and Memory Model
Lecture 22 Overview of the Embedded Build Process
Lecture 23 A closer look at the Embedded Build Process
Lecture 24 Overview of the STM32F4 Memory Model
Lecture 25 Understanding the Linkerscript and Linking Process
Lecture 26 Analyzing the Linkerscript and Memory Layout
Section 5: Working with the Linkerscript
Lecture 27 Source Code Download
Lecture 28 Programming : Creating SECTIONS in the Linkerscript
Lecture 29 Programming : Defining custom MEMORY regions
Lecture 30 Programming : Storing functions in Custom Sections
Section 6: Bare-Metal Bootloader Development
Lecture 31 Programming : Implementing the Jump-to-Application function
Lecture 32 Programming : Implementing the Default Application(Pt.1)
Lecture 33 Programming : Implementing the Default Application(Pt.2)
Lecture 34 Programming : Sharing functions between the Bootloader and User Application(Pt1)
Lecture 35 Programming : Sharing functions between the Bootloader and User Application(Pt2)
Section 7: Final Project- Multi-Slot Bootloader System
Lecture 36 Programming : Receiving UART Commands
Lecture 37 Programming : Designing the System
Lecture 38 Programming : Implementing the Multi-Slot Bootloader System(Pt.1)
Lecture 39 Programming : Implementing the Multi-Slot Bootloader System(Pt.2)
Lecture 40 Programming : Implementing the Multi-Slot Bootloader System(Pt.3)
Section 8: Closing
Lecture 41 Closing Remarks
Embedded systems engineers and developers who want to expand their knowledge of bootloader development and develop custom firmware for STM32 microcontrollers.