In this lesson, we will dive into thread management and data passing in the nRF Connect SDK/Zephyr. We have two execution contexts: Thread context and Interrupt context. Each context has its own usage and timing implications.
We will first examine the different execution primitives, and how different types of threads and different types of interrupts co-exist. Then we will take a closer look at the life cycle of a thread and how the scheduler works. After that, we will also cover frequently used data-passing techniques such as message queues and FIFOs
At the end of the lesson, you will have a solid understanding of the options available to schedule application tasks and their different time constraints. You will also gain a good hands-on grasp on how to safely pass data between threads and the kernel options available.