This class groups together QV services. It has only static members and should not be instantiated. class members). However, to avoid C++ potential name-mangling problems in assembly language, these elements are defined outside of the QK class and use the extern "C" linkage specification.
QV::onIdle() must be called with interrupts DISABLED because the determination of the idle condition (no events in the queues) can change at any time by an interrupt posting events to a queue. QV::onIdle() MUST enable interrupts internally, perhaps at the same time as putting the CPU into a power-saving mode.