Free Online Training Events
Free Technical Resources
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.
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.
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:
A tour of Zephyr
Course Objectives ● Background ● Why use Zephyr RTOS? ● Application Examples ● Supported Boards ● Architecture Overview ● Kernel Services ● OS services ● Connectivity ● Security ● Safety ● Licensing ● Releases Lifecycle and Maintenance ● Development Environment. ● Zephyr Resources
Zephyr Project Kickstart
Overview ● Zephyr Application directory ● Common Layouts ● Configuration files ● Cmake and ninja ● Device Tree ● KConfig ● West ● Build ● Flashing ● Using Qemu ● Using an IDE
Configuring and Building Zephyr Application
Configuration System ● Interactive configuration ● Custom Kconfig ● Why device trees? ● Device tree Syntax and Structure ● Device Tree bindings ● Device Tree programmatic access ● Overlays ● Troubleshooting device Trees ● DeviceTree vs KConfig
Tasks, Scheduling and Memory Management
Kernel services overview ● Threads (system, user) ● Scheduling ● CPU idling ● Kernel Timing ● Timers ● Memory management
Debugging Zephyr Application
Debugging Overview ● Zephyr Shell ● Logging subsystem ● Logging Configuration and usage ● system panic ● Core dump subsystem ● Core dump configuration ● Inspecting Core dump ● Thread analyser ● Using Qemu ● Using JTAG ● Use case: stack overflow
Hardware Integration
Introduction ● Device Model ● init sequence ● subsystem API ● Adding and Initializing a device ● Init level ● Device Tree Overlays ● dts to C ● Using a device ● Multiple device instances ● Available Driver Samples ● Outlook: middleware
Interrupts and Data Passing
Critical Section ● Semaphore ● Mutex ● Other synchronizations ● When to use? ● Data Passing Overview ● Handling interrupts ● ISR ● Threads and interrupts ● Workqueue ● SMP case ● Annex: Other services (Atomic services, floating point, Version, Fatal Errors, Thread local storage).
Writing Zephyr Application
Overview and details of some of the OS services offered by Zephyr.
Testing and Quality Assurance
Footprint and Memory Usage ● CI/CD with Zephyr ● Generating SBOM ● Helping securing device ● Thread Analysis ● Other tools.
Practical Real Time Design
Dimensioning the stack ● MPU ● How many threads? ● Scheduling Design and analysis ● Real-time best practices ● Using multiple cores ● HAL and OSAL
Complete an enquiry form and a Doulos representative will get back to you.
Enquiry FormPrice on request