Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Zephyr OTA Firmware Updates and Device Management
Introduction
Course Requirements
Introduction to Zephyr OS and the Enterprise Embedded Landscape
Why Zephyr for Top Companies (1:05)
The Zephyr Ecosystem and Core Concepts (2:47)
Introduction to Zephyr OS (1:43)
Introduction to Firmware Over-the-Air Update (FOTA)
What is FOTA (0:48)
Importance of FOTA in Modern Technology (2:27)
Applications of FOTA in various Industries (2:10)
FOTA System Architecture
The Hrdware Components (2:23)
Overview of the FOTA Workflow (1:40)
A Closer look at the Workflow (5:52)
Common Communication Protocols of FOTA (2:57)
Security Measures in FOTA
Overview of Security Measures in FOTA (1:33)
Key Security Threats in FOTA (3:37)
Challenges in FOTA Implementation and Mitigation Strategies (4:35)
Configuring the ESP32 for AT Commands
Configuring the ESP32 as a WIFI and BLE Modem (12:10)
Getting the ESP32 Flash Download Tool (3:19)
Flashing the Appropriate Binary into the ESP32 (8:12)
Testing the ESP32 with Commands (3:42)
Setting Up Zephyr
Zephyr Environment Setup Guide
Overview of the Process (5:01)
Programming: Installing the Required Python Version for Zephyr (2:35)
Programming: Installing the Zephyr Host Tools (6:04)
Programming: Verifying the Host Tools Installation (2:07)
Programming: Creating and Activating the Virtual Environment (3:39)
Fix for windows-curses install error on Windows
Programming: Initializing the West Workspace and Fetching Zephyr (7:18)
Programming: Installing the Zephyr SDK and Arm Toolchain (7:34)
Programming: Testing the Setup by Blinking an LED (4:38)
Walkthrough of a Full Zephyr Setup on Windows
Overview of the Zephyr Folder (3:20)
Overview of the Modules Folder (0:39)
Overview of the SDK Folder (2:03)
Programming: Exploring the Zephyr SDK Folder (1:36)
About Setup and Installation
Source Code Download
Introduction to West and the Manifest (3:58)
The Build System, Configuration, and Device Tree
Overview of the Zephyr Build System (1:34)
Overview of Kconfig (1:29)
Overview of the Device Tree and Overlay File (3:14)
The Zephyr Device Tree
What is a Node? (2:54)
Undstanding the Property Types (1:59)
Undstanding Labels and pHandles (2:42)
Overview the .dts and Overlay Files (8:40)
Key Macros for Interacting with the Device Tree (3:59)
Summary and Key Takeaways (5:43)
Programming: Exploring the Subfolders in the Zephyr Workspace (3:00)
Programming: Exploring the Zephyr Folder in the Workspace (6:01)
Understanding Why the Device Tree Exists (3:29)
The Pin Control Subsystem
Linking Peripherals to 'pinctrl' States (2:40)
The Automation at Boot Time (2:57)
Overview of the Zephyr Pin Control Subsytem (5:11)
Getting Familiar with Core Zephyr Files in the Workspace
Programming: Analyzing the Device Tree Files Provided by Zephyr (20:32)
Programming: Analyzing the Zephyr Binding Files (3:35)
Programming: Finding the Avaliable Device Tree Macros (2:38)
Programming: Analyzing the Pin Control Node in .dtsi Files (5:13)
Programming: Analyzing Kconfig Files (3:11)
Programming: Getting the Required Documentation for Zephyr and STM32 Development (5:15)
Developing the UART TX Driver in Zephyr
Programming: The UART TX Poll Project Config File (2:33)
Programming: Using the Board's Chosen UART Console (6:02)
Programming: Getting a Device Reference from the Device Tree Node Identifier (4:01)
Programming: Implementing the UART TX Driver Code (10:55)
Programming: Building and Testing the UART TX Project (8:03)
Programming: Working with the Kernel Print Function (10:37)
Developing the UART RX Driver in Zephyr
Programming: Testing the UART RX Driver (6:09)
Programming: Developing the UART RX Driver (11:38)
Developing Multithreaded Applications with Zephyr
Programming: Understanding K_THREAD_DEFINE (5:40)
Programming: Defining and Initializing the Thread (4:32)
Programming: Building and Testing the RTOS Thread Project (3:33)
Programming: Running Multiple Threads in Round Robin (5:15)
Programming: Defining and Initializing the Second Thread (2:51)
Programming: Building and Testing the Multithreaded Round Robin Project (1:52)
Programming: Defining the Arguments for the Thread (7:19)
Zephyr Thread Control and Management
Programming: Project Introduction and Thread Control Functions (5:11)
Programming: Declaring Stack Area and TCB for the Thread (8:47)
Programming: Creating the Thread Function for Worker Thread A (5:50)
Programming: Creating the Second Worker Thread (1:14)
Programming: Creating the Thread Function for the Controller Thread (6:06)
Programming: Yielding and Suspending Threads (2:38)
Programming: Implementing the 'print_priority()' Helper Function (5:02)
Programming: Changing Thread Priority at Runtime (3:41)
Programming: Sleeping and Aborting Threads at Runtime (3:08)
Programming: Implementing the 'start_thread()' Helper Function (3:25)
Programming: Starting the Threads Using the Helper Function (2:25)
Programming: Building and Testing Thread Control Project (18:10)
Programming: Setting Up the Project (3:12)
Working with Binary Semaphores in Zephyr
Programming: Overview of the Binary Semaphore Project (5:23)
Programming: Working with Zephyr Atomic Services (6:27)
Programming: Defining the Macros for the System (4:35)
Programming: Creating the First Thread (7:53)
Programming: Creating the Second Thread (4:21)
Programming: Creating and Starting the Threads in the Main Function (1:55)
Programming: Building and Testing the Binary Semaphore Project (7:04)
Understanding Semaphores in Zephyr (10:37)
Working with Counting Semaphores in Zephyr
Overview of the Counting Semaphore Project (4:12)
Programming: Defining Configuration and Thread Objects (3:36)
Programming: Implementing the 'car_entry()' Function (6:19)
Programming: Creating the Car Threads with Unique IDs (7:05)
Programming: Building and Testing the Counting Semaphore Project (2:43)
Programming: Getting the Required Documentation for Zephyr and STM32 Development
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock