Global training solutions for engineers creating the world's electronics

Zephyr Essentials

Standard Level: 3 days


This course is available Live Online worldwide: View the Live Online full course description »


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

 

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