Cours ORT5 en
Cours ORT5 en
Objectives
Learn how to develop, configure, debug and trace Zephyr applications
Devicetree and Kconfig usage and development
Using west and writing west manifest
Zephyr real time multitasking overview
Understand the Zephyr kernel Services and ecosystem
Learn communication and synchronization mechanisms
Understand Zephyr memory management and data structures
Understand User mode and kernel mode
Writing a device tree, and driver
Using common subsystems
Course Environment
Theoretical course
PDF course material (in English).
Course dispensed using the Teams video-conferencing system.
The trainer answers trainees' questions during the training and provide technical and pedagogical assistance through the
Teams video-conferencing system.
Practical activities
Practical activities represent from 40% to 50% of course duration.
Code examples, exercises and solutions
One Online Linux PC per trainee for the practical activities.
The trainer has access to trainees' Online PCs for technical and pedagogical assistance.
Eclipse environment and GCC compiler.
QEMU Emulated board or physical board connected to the online PC (depending on the course).
Some Labs may be completed between sessions and are checked by the trainer on the next session.
Downloadable preconfigured virtual machine for post-course practical activities
At the start of each session the trainer will interact with the trainees to ensure the course fits their expectations and correct if
needed
Prerequisites
Good C programming skills (see our oL2 - C Language for Embedded MCUscourse)
Duration
Total: 30 hours
5 sessions, 6 hours each (excluding break time)
From 40% to 50% of training time is devoted to practical activities
Some Labs may be completed between sessions and are checked by the trainer on the next session
Target Audience
oRT5 - Zephyr RTOS Programming
Wednesday 6 November, 2024
Any embedded systems engineer or technician with the above prerequisites.
Evaluation modalities
The prerequisites indicated above are assessed before the training by the technical supervision of the traineein his company, or
by the trainee himself in the exceptional case of an individual trainee.
Trainee progress is assessed in two different ways, depending on the course:
For courses lending themselves to practical exercises, the results of the exercises are checked by the trainer while, if
necessary, helping trainees to carry them out by providing additional details.
Quizzes are offered at the end of sections that do not include practical exercises to verifythat the trainees have assimilated
the points presented
At the end of the training, each trainee receives a certificate attesting that they have successfully completed the course.
In the event of a problem, discovered during the course, due to a lack of prerequisites by the trainee a different or additional
training is offered to them, generally to reinforce their prerequisites,in agreement with their company manager if applicable.
Plan
Day 1
Introduction to Zephyr
Zephyr Project
Zephyr Ecosystem
Why use Zephyr
Install and use Zephyr
Build and Configuration Systems
West
CMake
Zephyr SDK
Application components and structure
West manifest
Configure Zephyr
Overview
Kconfig
Default configuration
Interactive configuration tools
Config fragments
Devicetree
Syntax
Standard properties
Initial devicetree source
Access devicetree from source code
Best practices
Exercise: Write a device tree overlay
Day 2
Thread Management
Thread Fundamentals
Thread Control Block
Creating Threads
Threads Priorities
Thread States
Main and Idle Threads
Delays
Changing Thread Priority
Suspending Threads
Kernel Structures
Simple linked-list ready queue
Red/black tree ready queue
Traditional multi-queue ready queue
Thread Custom Data
Exercise: Create and manage threads
Exercise: Create periodic threads
Day 3
User Mode
Overview
Memory Domains
Partitions
Logical apps
oRT5 - Zephyr RTOS Programming
Wednesday 6 November, 2024
Syscalls
Kernel objects
Permissions
Data Passing
Message Queues
Queues
FIFOs
LIFOs
Mailboxes
Pipes
Stacks
Zephyr Bus (Zbus)
Zbus overview
Elements
Usage
Exercise: Create a print gatekeeper thread using message queue
Exercise: Synchronous communication using mailboxes
Day 4
Interrupt Management
Threads and Interrupts
Interrupts in zephyr
Interrupts on ARM Cortex-M
Handler thread
Queue within an ISR
Workqueue Threads
Exercise: Understand how to wait on multiple events and interrupt safe APIs
Exercise: Understand how to pass data using Queues from an interrupt to a thread
Exercise: Create and submit work items from interrupts to custom WorkQueue
Software Timers
Timers
Defining a Timer
Using a Timer Expiry Function
Timer types
One-shot timers
Auto-reload timers
Timer Commands
Exercise: Understand the use of one-shot and auto-reload timers
oRT5 - Zephyr RTOS Programming
Wednesday 6 November, 2024
Modules
Why to use modules?
Module structure
Out-of-tree module
YAML files
Module CMakeLists.txt
Exercise: Create a simple hello world module
Kconfig
Advantages
Kconfig Options in Zephyr RTOS
Configuration System
Writing custom Kconfig Options
Kconfig extension
Using Kconfigs
Exercise: Create a module that uses custom Kconfig options
Day 5
Power Management
Overview
System Power Management
Device Power Management
System-Managed
Runtime
oRT5 - Zephyr RTOS Programming
Wednesday 6 November, 2024
Power domains
Exercise: Write a driver compatible with power management subsystem
Renseignements pratiques
Duration : 30 hours
Cost : 3070 € HT
Prochaines sessions : from 18th to 22nd of November, 2024 - Online EurAsia (9h-16h CET)
SAS au capital de 138600 € - SIRET 449 597 103 00026 - RCS Nanterre - NAF 6202A
Centre de Formation, Siège social et administration : 19, rue Pierre Curie - 92400 Courbevoie - Tél. 01 41 16 80 10
Last site update: Wednesday 6 November, 2024 at :
https://www.ac6-formation.com/