Learn Zephyr® – the new Era of Real Time OS
Real-time programming applied to the Zephyr operating system
In 2022, Zephyr OS became the largest open-source RTOS project by the number of commits and developers.
Build secure, connected, future-proof devices with Zephyr®
Zephyr RTOS is easy to deploy, secure, connect and manage. It has a growing set of software libraries that can be used across various applications and industry sectors such as Industrial IoT, wearables, machine learning and more. Zephyr is built with an emphasis on broad chipset support, security, dependability, long term support releases and a growing opensource ecosystem.
Objectives:
Learn how to develop, configure, debug and trace Zephyr applications
Discover the real time multitasking concept
Understand Real Time constraints, like determinism, preemption or interrupts
Understand the Zephyr kernel Services
Learn communication and synchronization mechanisms
Interactions with processor architecture features
Understand Zephyr memory management and data structures
Understand User mode and kernel mode
Writing a device tree
Writing a complete driver
Course environment:
Theoretical course
PDF course material (in English)
The trainer to answer trainees’ questions during the training and provide technical and pedagogical assistance
Practical activities
Practical activities represent from 40% to 50% of course duration
Example code, labs and solutions
Preconfigured Virtual Machine (VM) for doing labs during of after the training
STM3240G-Eval physical board or Qemu emulated STM32F4-Discovery board
Course Format:
Online course, 5 sessions, 6 hours each (excluding break time).
Lots of hands-on exercises during the course
Some Labs may be completed between sessions and are checked by the trainer on the next session.
Prerequisites
good C Language skills
Day One
Introduction to Zephyr
Zephyr Project
Zephyr Ecosystem
Why use Zephyr
Install and Use Zephyr
Build and Configuration Systems
West
CMake
Kconfig and configuration overlay
Configuration tools: menuconfig and guiconfig
Zephyr Without Threads
Operation without Threads
GPIO
Random Number Generation
Utilities
Data Structures
Single-linked List
Double-linked List
Ring Buffers
Exercise: Hello World from Zephyr, configure and blink LEDs using Zephyr
Exercise: Manage Zephyr linked list and understand container_of macro
Real-Time Concepts
Base real time concepts
The Real Time constraints
Multi-task and real time
Tasks and Task Descriptors
Content of the task descriptor
List of task descriptors
Context Switch
Demo: Analyse Context Switch internals
Scheduling
Task Scheduling and Preemption
Tick based or tickless scheduling
Scheduling systems and schedulability proof
Fixed priorities scheduling
RMA and EDF scheduling
Scheduling through Zephyr
Scheduling Algorithm
Cooperative Time Slicing
Preemptive Time Slicing
Day Two
Day Tree
Day Four
Day Five
Nohau Training Partner
This course is provided by a Nohau Training Partner, a trusted provider of hands-on training for professionals in embedded systems, software development, and engineering.
