A step-by-step guide that teaches you how to use Zephyr RTOS. It assumes:
- knowledge of C
- no previous experience with RTOS
- basic embedded electronics knowledge (GPIO, Timers, Interrupt,...)
Each lesson builds on the previous one. Most lessons end with exercises (with solutions!) that show how the covered concepts can be used in a practical application.
This tutorial is under active development, if you want to participate - please read the Contribution guide.
A web version of this tutorial can be found here
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: Logging
- 6.1 Introduction
- 6.2 Commands
- 6.3 Kconfig
- 6.4 Exercise
-
Lesson 7: Debugging
- 7.1 Introduction
- 7.2 Commands
- 7.3 Kconfig
- 7.4 Exercise
-
Lesson 8: Interrupts
- 8.1 Introduction
- 8.2 Commands
- 8.3 Kconfig
- 8.4 Exercise
-
Lesson 9: Timers
- 9.1 Introduction
- 9.2 Commands
- 9.3 Kconfig
- 9.4 Exercise
-
Lesson 10: Mutexes
- 10.1 Introduction
- 10.2 Commands
- 10.3 Kconfig
- 10.4 Exercise
Useful Links
General
Youtube channels
Projects using Zephyr
- Golioth: IoT cloud platform
- Battery management system
- MG100: IoT sensor module
- Anyl: Embedded crypto wallet (for IoT)
- BLE sensor
- PineTime smartwatch
- UWB position tracking
- zmk: mechanical keyboard firmware
- air quality sensor
Zephyr libraries
Contact
Follow me on twitter: stay up to date on my latest blogs/projects