Zephyr Tutorial for Beginners

Overview

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

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
bitcoin_address eth_address doge_address

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
Comments
  • Better layout / theme

    Better layout / theme

    I believe it would be more accessible if this used a theme such as Just the Docs, which would provide easier navigation and search functionality. (This is something I'm actively working on, at least for myself, and would like to contribute it back if possible).

    opened by nobodywasishere 2
  • k_sleep parameter in the latest Zephyr API

    k_sleep parameter in the latest Zephyr API

    Hi, When I try to build the code in the thread start exercise, the k_sleep gave error. I found that the parameter k_sleep takes should be in type k_timeout_t (https://docs.zephyrproject.org/apidoc/latest/group__thread__apis.html#ga48d4b041790454da4d68ac8711f29657). And the code can be changed to k_sleep(K_MSEC(500)), or change the define of SLEEPTIME.

    https://github.com/maksimdrachov/zephyr-rtos-tutorial/blob/36b3f5b5a1e1c611cba3cf2b6f78a3e7ae9de5d5/exercises/threads/thread-start/src/main.c#L19

    opened by dinayuil 0
  • K_thread_define exercise

    K_thread_define exercise

    The current exercise invoking the k_thread_design function fails to compile in v3.1.99. I had to recast my_tid using:

    extern const k_tid_t name; or extern const k_tid my_tid;

    I hope this helps.

    opened by gerbers 0
  • new learner willing to document the process and contribute

    new learner willing to document the process and contribute

    Hi just found this gem on my learning on zephyr os API. The official documentation has good tutorials for the kernel API. Not so much for devices...

    Would you be interested in using Gitbook format?

    opened by ntn888 6
  • Have you thought of adding a section for drivers?

    Have you thought of adding a section for drivers?

    I'm in the process of developing for a board that needs to use a driver. I'm having trouble figuring out exactly how to use it. Do you have experience with using an existing Zephyr driver for UART, SPI, etc?

    opened by juicebyjustin 1
Owner
null
This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

?? C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

huihut 26.7k Nov 28, 2022
IoT for Beginners - 12 Weeks, 24 Lessons, IoT for All!

Azure Cloud Advocates at Microsoft are pleased to offer a 12-week, 24-lesson curriculum all about IoT basics. Each lesson includes pre- and post-lesson quizzes, written instructions to complete the lesson, a solution, an assignment and more. Our project-based pedagogy allows you to learn while building, a proven way for new skills to 'stick'.

Microsoft 11.3k Dec 1, 2022
cpp fundamentals and questions for beginners and intermediates

DSA 60 days Hi people! So we have started grasping dsa concepts and solving problems from 12 July. And we shall continue till September 10 Starting fr

Sushree Satarupa 209 Nov 18, 2022
Small beginners C program examples.

Small beginner C programs.

null 23 Oct 8, 2022
C - A repository containing C code samples and concepts for beginners.

C - A repository containing C code samples and concepts for beginners. A repository containing C concepts I made when I was bored. You can also use th

doxxable3 1 Nov 1, 2021
Roadmap for learning the C++ programming language for beginners and experienced devs.

Roadmap for learning the C++ programming language for beginners and experienced devs. // Дорожная карта по изучению языка программирования C++ для начинающих и практикующих.

Evgeny 1.7k Dec 1, 2022
A project uses for beginners, who wants to learn basic Cpp.

Learning Basic Cpp The basic project for who wants to learn Cpp. Notes: All the files are coded using Microsoft Visual Studio 2019. If you want to cod

null 1 Jan 28, 2022
📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly

The book claims to be "On the Fly". Its intent is to provide a comprehensive introduction to the relevant features regarding modern C++ (before 2020s). Readers can choose interesting content according to the following table of content to learn and quickly familiarize the new features you would like to learn. Readers should be aware that not all of these features are required. Instead, it should be learned when you really need it.

Changkun Ou 19.3k Nov 25, 2022
Nvidia contributed CUDA tutorial for Numba

This is an adapted version of one delivered internally at NVIDIA - its primary audience is those who are familiar with CUDA C/C++ programming, but perhaps less so with Python and its ecosystem.

Numba 173 Nov 11, 2022
Unicorn CPU emulator framework tutorial

使用unicorn-engine开发模拟器 什么是unicorn引擎 Unicorn是基于qemu开发的一个CPU模拟器,支持常见的各种指令集,能在各种系统上运行。 GITHUB项目地址:https://github.com/unicorn-engine/unicorn 官网地址:https://w

null 9 Mar 9, 2022
A Simple 32-bit OS lab tutorial.

一个支点撬动操作系统大山 项目名称:逸仙OS简明教程 ( YatSenOS Volume First ) 所属机构:中山大学操作系统实验课程组 写在前面 本项目已经成功用于2021年中山大学春季操作系统实验课程,课程的地址是https://gitee.com/nelsoncheung/sysu-20

Yat-Sen OS 445 Nov 22, 2022
C++ OpenGL 3D Game Tutorial Series - Learn to code an OpenGL 3D Game in C++ from scratch

C++ OpenGL 3D Game Tutorial Series is a YouTube Tutorial Series, whose purpose is to help all those who want to take their first steps in the game dev

 PardCode 113 Nov 11, 2022
Tutorial: Writing a "bare metal" operating system for Raspberry Pi 4

Tutorial: Writing a "bare metal" operating system for Raspberry Pi 4

Adam Greenwood-Byrne 2.5k Nov 24, 2022
Tutorial how to use Travis CI with C++

travis_cpp_tutorial Branch master develop richel Tutorial how to use Travis CI with C++. View the tutorial (screen friendly) Download the PDF Want to

Richel Bilderbeek 177 Oct 21, 2022
A gtk4 tutorial for beginners

This tutorial illustrates how to write C programs with Gtk4 library. It focuses on beginners so the contents are limited to basic things such as widgets, GObject, signal, menus and build system. Please refer Gnome API reference for further topics.

ToshioCP 292 Nov 26, 2022
Gtk4 Tutorial for beginners

Gtk4 Tutorial for beginners

ToshioCP 293 Nov 30, 2022
Juce tutorial for beginners, with DSP introduction.

JUCE Tutorial Juce tutorial for beginners, with DSP basics. My teaching materials :D Warning: working in progress lesson 0: Setup lesson 1: Basic Basi

Wen-Yi Hsiao 5 Aug 25, 2022
This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

?? C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

huihut 26.7k Nov 28, 2022
Qt 6 Core for Beginners with C++ on Udemy

qt6-core-beginners Qt 6 Core for Beginners with C++ on Udemy Section

Bryan Cairns 119 Nov 23, 2022
A ROS based Open Source Simulation Environment for Robotics Beginners

A ROS based Open Source Simulation Environment for Robotics Beginners

Sulegeyixiu 126 Nov 13, 2022