QP-nano是QP的一個裁剪版本,是一個通用的、可移植的、超輕量級的事件驅動型框架。適用於像8051、PIC、AVR、MSP430、68HC01/11/12、R8C/Tiny等資源受限的8位和16位MCU。其一個QP-nano應用可以放入到只有100字節的RAM和2K字節ROM的系統中。
適用的應用范圍是電機控制,照明控制,電容觸摸,遙控、RFID、溫度調節器、小家電控制、玩具、電源、電池充電器等。
特征:
- 支持最多4層狀態嵌套;
- 支持最多8個活動對象(AO);
- 支持最多255個事件;
- 采用直接分派事件實例到AO的隊列中;
- 每個AO有一個一次性時間事件;
- 可選采用搶占式調度QK_nano或合作式調度Vanilla;
- 具有空閑回調函數結構,方便實現低功耗模式;
- 具有斷言的錯誤處理功能。
QPnano總體結構圖如下:

圖1. QP-nano總體結構
QK調度流程如下:

圖2. QP-nano之QK流程
Vanilla調度流程如下:

圖3.QP-nano之Vanilla流程
參考:
【1】Miro Samek《UML狀態圖的實用C/C++設計---嵌入式系統的事件驅動型編程技術》第二版
