---
title: "#54 Non-preemptive QV Kernel for Active Objects"
url: https://daily.dev/posts/54-non-preemptive-qv-kernel-for-active-objects-xekkms0xw
source_url: https://www.youtube.com/watch?v=lXkAQR7TNOg
type: video:youtube
source: "Quantum Leaps"
published: 2026-05-31T07:45:32.795Z
updated: 2026-06-04T02:13:48.021Z
tags: ["embedded", "stm32"]
reading_time: 28
upvotes: 0
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# #54 Non-preemptive QV Kernel for Active Objects

**[Quantum Leaps](https://daily.dev/sources/quantum-leaps)** · 28 min read · 0 upvotes · 0 comments

## Summary

Lesson 54 of a modern embedded systems programming course covers the QV non-preemptive kernel from the QPC active object framework. The lesson reviews shortcomings of a simple super loop scheduler (lost events, global variable race conditions, spaghetti logic) and shows how QV addresses them using event queues and hierarchical state machines inside active objects. A step-by-step walkthrough demonstrates integrating QPC into an STM32 Cube IDE project on a Nucleo C031C6 board, including directory setup, include paths, resolving SysTick handler conflicts, and merging CubeMX-generated code with QP application code. Logic analyzer traces illustrate priority inversion inherent to non-preemptive scheduling, idle callback behavior, and low-power sleep mode in release builds.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=lXkAQR7TNOg>

---

Tags: [#embedded](https://daily.dev/tags/embedded), [#stm32](https://daily.dev/tags/stm32)

[View this post on daily.dev](https://daily.dev/posts/54-non-preemptive-qv-kernel-for-active-objects-xekkms0xw)
