Zephyr: Tutorial for Beginners
This repository contains a step-by-step guide that teaches you how to use Zephyr RTOS. It assumes:
- no previous experience with RTOS
- basic embedded electronics knowledge (GPIO, Timers, Interrupt,...)
- knowledge of C
Each lesson builds on the previous one. Most lessons end with exercises (with solutions!) that allow you to test your knowledge to make sure you understand everything that is covered.
This tutorial is under active development, if you want to participate - please read the Contribution guide.
Table of Contents
-
Lesson 1: Zephyr Setup
-
Lesson 2: Introduction
- 2.1 RTOS basics
- 2.2 Zephyr structure
- 2.3 Tutorial structure
-
Lesson 3: Threads
- 3.1 Introduction
- 3.2 Commands
- 3.3 Kconfig
- 3.4 Exercise
-
Lesson 4: GPIO
- 4.1 Introduction
- 4.2 Commands
- 4.3 Kconfig
- 4.4 Exercise
-
Lesson 5: Scheduling
- 5.1 Introduction
- 5.2 Commands
- 5.3 Kconfig
- 5.4 Exercise
-
Lesson 6: Debugging
- 6.1 Introduction
- 6.2 Commands
- 6.3 Kconfig
- 6.4 Exercise
-
Lesson 7: Interrupts
- 7.1 Introduction
- 7.2 Commands
- 7.3 Kconfig
- 7.4 Exercise
-
Lesson 8: Timers
- 8.1 Introduction
- 8.2 Commands
- 8.3 Kconfig
- 8.4 Exercise
-
Lesson 9: Mutexes
- 9.1 Introduction
- 9.2 Commands
- 9.3 Kconfig
- 9.4 Exercise
-
Lesson 10: Semaphores
- 10.1 Introduction
- 10.2 Commands
- 10.3 Kconfig
- 10.4 Exercise
-
Lesson 11: Logging
- 11.1 Introduction
- 11.2 Commands
- 11.3 Kconfig
- 11.4 Exercise
-
Lesson 12: Networking
- 12.1 Introduction
- 12.2 Commands
- 12.3 Kconfig
- 12.4 Exercise
Useful Links
General
Youtube channels
Support
I believe all knowledge should be freely accessible to whomever wants to learn.
If you want to support me in writing more tutorials like this one, here are some ways you can do so:
- subscribe to my youtube: stay up to date on my latest videos
- follow me on twitter: stay up to date on my latest blogs/projects
- donate cryptocurrency
Bitcoin | Ethereum | Dogecoin |
---|---|---|
![]() |
![]() |
![]() |
To Do
- gpio:commands.md -> add descriptions to tables
- exercices: threads : add define equivalents to each type
- zephyr-setup: test proposed install and setup on 'tutorial'
- introduction->rtos-basics: add explanatory images
- threads->exercises: check build thread-start
towards the end:
- Add next page and prev page links
- exercises: rename project names