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
Register an account
Already have an account? Log in
(All fields are required unless specified optional)

Forgot your password?
Enter your email address, and we will send a link to reset your password.