You are currently not logged in and your progress will not be saved. Register or Log in

Lesson 7 – Multithreaded applications

Overview

nRF Connect SDK uses the Zephyr RTOS, a real-time OS designed for embedded development. Zephyr includes numerous kernel services and other features including threads, that allow for multithreaded application development. In this lesson, we will go through thread concepts and the thread-related services that are provided by the nRF Connect SDK/Zephyr.

In the exercise section, we will cover how to create threads with different priorities and learn about the scheduler’s behavior through features like time slicing and workqueues.

Objectives

  • Understand the main difference between bare-metal vs RTOS programming, including both advantages and disadvantages in utilizing an RTOS
  • Get familiarized with Zephyr RTOS execution model, ISRs, threads, thread’s life-cycle and inter-task communication/synchronization mechanisms, and the scheduler
  • Learn the basics of kernel services related to threads (user-defined threads, system threads, workqueue threads)
  • Learn about preemptive scheduling and time-slicing through hands-on exercises
  • Practice through hands-on exercises how to create threads, thread yielding and sleeping
  • Practice through hands-on exercises how to offload work to a workqueue