Global training solutions for engineers creating the world's electronics

Zephyr Essentials ONLINE

Standard Level: 4 sessions (6 hours per session)


PLEASE NOTE: This is a LIVE INSTRUCTOR-LED training event delivered ONLINE.

It covers the same scope and content as a scheduled in-person class and delivers comparable learning outcomes.


 

Zephyr is a modular, highly portable, real-time operating system with an associated ecosystem to build secure, connected, and future-proofed devices. Zephyr is not just another RTOS but a complete development platform. It can help you achieve a lot with optimal effort. 

This course helps you to navigate the steep learning curve for Zephyr and gives you a solid foundation to get you project-ready quickly.

This training class is designed around interactivity and student engagement with hands-on workshops designed to reinforce learning through practical applications. 

  • How to design your own product using the latest Zephyr Long Term Support (LTS) version.
  • Get an understanding of what sets Zephyr apart from other embedded OSs and how to turn it to your advantage.
  • A solid grounding of the Zephyr ecosystem, architecture, services, subsystems and APIs.
  • How to structure, configure, develop, debug and test Zephyr applications.
  • How to enable and integrate common hardware peripherals like GPIO, I2C, SPI or UART.
  • Practical, battle proven “Tips and Tricks”.

This course is designed for anyone interested in, or tasked with, the development of a resource-constrained Real-Time system using Zephyr, for example, software engineers, firmware engineers, hardware engineers, field engineers, and project managers.

  • Familiarity with C programming and embedded systems.
  • Basic knowledge of embedded processors and peripherals.
  • Some familiarity with embedded OS concepts, like tasks, priority, schedulers, and message passing.

Prior attendance of C Programming for Embedded Systems  or equivalent is recommended.

Doulos Course materials are renowned for being the most comprehensive and user-friendly available. Their style, content, and coverage is unique and has made them sought-after resources in their own right.

The materials include:

  • Fully indexed course notes creating a complete reference manual.
  • Workbook full of practical examples and solutions to help you apply your knowledge.
  • Access to the training platform, even after the training has completed.

Introduction

Provide background information about the training and the Zephyr project.
Welcome • Course Objectives • Background on Zephyr • Getting started with Zephyr • Development environments

Zephyr for Embedded Products

Discuss what makes Zephyr a good fit for embedded products.
Why use Zephyr? • Hardware Support • Ecosystem Overview • Licensing • Product Examples

Developing with Zephyr

Discuss practical considerations when developing embedded products with Zephyr.
Zephyr Paradigm Shift • Product Considerations • Release Lifecycle • Security  • Software update

Zephyr Ecosystem Overview

Give an overview of the Zephyr Ecosystem.
Architecture • Kernel and OS services • Connectivity Stacks • Proprietary Extensions

Zephyr Build System

Understand the Zephyr Build System.
West Workspace and Manifest • west tool • Managing Workspace • Building and Flashing applications • Using emulators • Zephyr Build Systems • YAML files

Zephyr Kernel

Understand how the Zephyr kernel works and how to configure it for a product.
Kernel services overview • Threads and Scheduling • Preemptible and Cooperative threads • Threads APIs • SMP and CPU idling •  Kernel configuration • Product development Tips

Devicetree and Hardware Abstraction Layer (HAL)

Get introduced to devicetree.
Why devicetree? • Hardware Abstraction Layer •  Devicetree and Zephyr • Blinky walkthrough

Kconfig

Learn about Kconfig and how to configure Zephyr for your application
What is Kconfig? • Compile time modularity • Using Interactive Configuration • Configuring Application • prj.conf and overlays • Product development Tips

Kconfig Troubleshooting

Learn how to resolve the most common issues related to Kconfig.
prj.conf not found • Configuration is not applied • Unmet dependencies • Build errors during compilations.

Zephyr Debugging Part 1

Learn how shells, logging and tracing help with application debugging during the development phase.
Shells • Configuring and Using Shells • Logging Subsystem • Configuring and Using Logging • Tracing Subsystem • Configuring and Using Tracing

Zephyr Debugging Part 2

Learn how to debug Zephyr applications.
Cross-debugging • GDB and VScode • Debugging Fatal Error • Core Dump • Stack Overflow Detection and Debugging • Tips for Device in the Fields.

Logging

Learn how to leverage the logging APIs for your applications.
Logging subsystem •  printk and printf • Log Module • Log APIs • Custom Application Kconfig • More on Logging

Hardware Integration

Discuss how to integrate peripherals in Zephyr.
Hardware Integration procedure • Devicetree bindings •  Devicetree overlays • Using drivers in application • Product Development Tips

Working with Devicetrees

Introduce the syntax and usage of devicetrees to gain a deeper understanding of how devicetree is used in Zephyr.
Devicetree source and other files • Devicetree syntax •  Devicetree node and properties  • important nodes (addressable resources, interrupts…) • Devicetree APIs • Use in Zephyr applications.

Devicetree Troubleshooting

Learn how to resolve the most common issues related to devicetrees.
Gosh, I got hundredths of cryptic compilation errors! • Common devicetree issues • How to resolve • Practical tips and tricks to ease troubleshooting.

ZBus

Discuss Zbus, a lightweight and flexible software bus for applications.
Why ZBus? ZBus key concepts • Channels, Listeners, (message) Subscribers • Zbus APIs • Virtual Distributed Events Dispatcher • Higher Locker Priority Protocol • Going further

Timers and Interrupts

Learn about timers and interrupts.
Measuring Time • Working with Timers • Interrupt Service Routine • Top/Bottom halves • System and Custom Workqueue • Working with Workqueues • Using interrupts.

Device Drivers

Discuss the steps required to develop and integrate a custom device driver in Zephyr.
Driver Development recipe • Devicetree bindings and Kconfig • Device Driver Model • Driver Implementation • Driver Registration • System Initialization • Using the Drivers • Product development tips

Working without Hardware

Learn about QEMU and native simulator and discuss how these technologies can be used during product development.
QEMU • QEMU Use Cases • native_sim • native_sim Use Cases • Emulated Devices • Testing drivers • Creating a Device Driver Emulator.

Ztest and Twister

Introduce Zephyr’s test framework, Ztest, and the test runner tool twister.
Twister • Using twister • Test reports and scenarios • Ztest • Writing Tests with Ztest  •  Hardware In the Loop (HIL) testing • Going Further

Quality Assurance

Discuss common tools available with Zephyr to assess and improve the quality of your product.
Footprint and Memory Usage • Static Code Analysis • Code Coverage • Software Bill of Materials (SBOM)

Writing Zephyr Application

Discuss a typical project structure for applications.
How to integrate proprietary code • Zephyr module • Creating and Using a Zephyr Module • Creating a Custom Workspace for your product • Zephyr Example Application.

Flying your Kite

Wrap-up, free Q&A sessions, further Zephyr and Doulos Resources.

Optional Topics:

The following sections are available in the Zephyr Essentials Manual, but are not normally covered in our public offering. These topics can be booked for team-based training.

Managing Memory

Discuss the aspects related to memory management in Zephyr.
Code Relocation • System Heap • Synchronized Heaps • Low-level heap allocators • Memory Slabs • Memory Blocks

Synchronization

Learn about the synchronization services and APIs provided by Zephyr and how they differ from other Operating Systems.
Semaphores • Mutex • Condvars • Events • Spinlock • When to use?

Passing Data

Introduce the data passing primitives and APIs offered by the Zephyr Kernel.
Kernel FIFO, LIFO and Queues • Kernel messages • Kernel Pipe

 

Course Dates

Please Enquire for Pricing

10 Mar 2025 ONLINE EurAsia Enquire
24 Mar 2025 ONLINE Americas Enquire
13 May 2025 ONLINE EurAsia Enquire
03 Jun 2025 ONLINE Americas Enquire
15 Jul 2025 ONLINE EurAsia Enquire
05 Aug 2025 ONLINE Americas Enquire

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request

Next dates for this course