Training > IoT & Embedded Development > Zephyr RTOS Programming (AC6401)
Image Image INSTRUCTOR-LED COURSE

Zephyr RTOS Programming (AC6401)

Turn Zephyr RTOS mastery into career momentum – Learn to architect modern embedded systems and accelerate your path to senior roles in IoT, firmware, and real-time application development.

Image
Who Is It For

This course is designed for embedded systems engineers or technicians, as well as developers transitioning from Embedded Linux, bare-metal, or traditional RTOS environments.
read less read more
Image
What You’ll Learn

Develop, configure, and debug modern embedded applications with Zephyr RTOS. Through hands-on labs and real-world examples, learn west, devicetree, Kconfig, multithreading, drivers, and secure design to create scalable, reliable, and connected embedded systems.
read less read more
Image
What It Prepares You For

Position yourself for in-demand embedded roles, from senior engineering to firmware architecture and leadership, with the expertise to tackle complex challenges and design secure, connected, high-performance systems for IoT, automotive, and industrial applications.
read less read more
Course Outline
Expand All
Collapse All
Image Introduction
- The Linux Foundation
- The Linux Foundation Training
- The Linux Foundation Certifications
- Laboratory Exercises, Solutions and Resources
- Labs
Image Ch 1. Course Introduction
- Introduction and Course Flow
Image Ch 2. Introduction to Zephyr
- Zephyr ecosystem
- Installation and use of Zephyr
Image Ch 3. Zephyr Build System
- Toolchains and Zephyr SDK
- Zephyr CMake functions
- Application structure
- Code structure
- Lab: Getting started with Zephyr and using west
Image Ch 4. Configure Zephyr
- Kconfig from an application perspective
- Config fragments
- Device tree syntax
- Device tree overlay
- Lab: Writing a device tree overlay
Image Ch 5. West
- Repository management
- West commands
- Lab: Writing a custom west manifest
Image Ch 6. Zephyr Fundamentals
- Common Subsystems: GPIO, I2C
- DeviceTree specification structures dt_spec
- Preprocessor meta-programming macros
- Data Structures
- Shell
- Lab: Using X-Macros in Zephyr and understanding CONTAINER_OF
Image Ch 7. Thread Management
- Thread Fundamentals
- Main and Idle Threads
- System Initialization
- Delays and timeout
- Lab: Creating and managing threads
- Lab: Creating periodic threads
Image Ch 8. Tracing and Logging
- Scheduling Traces
- Thread analyzer
- Logging
- Lab: Creating config overlay for visual trace diagnostics with Tracealyzer
Image Ch 9. Memory Management
- Memory Overview
- Iterable Sections
- Dynamic memory managers
- Stack Memory Analysis
- Stack Overflow detection
- Lab: Understanding dynamic memory allocation in Zephyr
- Lab: Displaying threads information and detecting stack overflow
Image Ch 10. User Mode
- Memory Domains
- Syscalls
Image Ch 11. Traditional Multithreading Primitives
- Mutual Exclusion
- Critical Sections and Spinlocks
- Semaphores
- Polling
- Lab: The producer-consumer problem, synchronizing and avoiding concurrent access problems
Image Ch 12. Inter-Thread Communication
- Message Queues (MSGQ) & Queues
- Mailboxes
- Zephyr Bus (Zbus)
- Lab: Creating a print gatekeeper thread using message queue
- Lab: Synchronous communication using mailboxes
Image Ch 13. Interrupt Management
- Interrupts in zephyr
- Handler thread
- Workqueue
- Lab: Understanding how to wait on multiple events and interrupt safe APIs
- Lab: Understanding how to pass data using Queues from an interrupt to a thread
- Lab: Creating and submitting work items from interrupts to custom WorkQueue
Image Ch 14. Modules
- Creating a new module
- Module Structure
- Lab: Creating a basic module
Image Ch 15. Writing Kconfig Symbols
- Kconfig syntax
- Kconfig extension
- Lab: Creating and configuring a module that uses custom Kconfig options
Image Ch 16. Device Driver Architecture
- Device driver model
- Define and allocate devices
- Matching drivers with device trees
- Device tree bindings
- Standard and common properties
- Interrupts and devices
- Lab: Creating a driver that respects the Zephyr Device Driver Model and define devices
- Lab: Creating a driver that uses custom device tree and Kconfig
Image Ch 17. Power Management
- System Power Management
- Device Power Management
- Power domains
- Lab: Writing a driver compatible with power management subsystem
Image Closing and Evaluation Survey
- Evaluation Survey

Prerequisites
This course is primarily intended for embedded systems engineers or technicians looking to dive deep into Zephyr RTOS. This course assumes you have good C programming skills and are familiar with multithreading concepts.