void QF_init(uint_fast8_t maxActive) {
QActive *a;
uint_fast8_t p;
uint_fast8_t n;
/** @pre the number of active objects must be in range */
Q_REQUIRE_ID(100, ((uint_fast8_t)1 < maxActive)
&& (maxActive <= (uint_fast8_t)33));
QF_maxActive_ = (uint_fast8_t)maxActive - (uint_fast8_t)1;
#ifdef QF_TIMEEVT_USAGE
for (n = (uint_fast8_t)0; n < (uint_fast8_t)QF_MAX_TICK_RATE; ++n) {
QF_timerSetX_[n] = (uint_fast8_t)0;
}
#endif /* QF_TIMEEVT_USAGE */
QF_readySet_ = (uint_fast32_t)0;
#ifdef qkn_h
QK_attr_.actPrio = (uint_fast8_t)8; /* QK-nano scheduler locked */
#ifdef QF_ISR_NEST
QK_attr_.intNest = (uint_fast8_t)0;
#endif
#ifdef QK_SCHED_LOCK
QK_attr_.lockPrio = (uint_fast8_t)0;
QK_attr_.lockHolder = (uint_fast8_t)0;
#endif
#endif /* #ifdef qkn_h */
/* clear all registered active objects... */
for (p = (uint_fast8_t)1; p <= QF_maxActive_; ++p) {
a = QF_ROM_ACTIVE_GET_(p);
/* QF_active[p] must be initialized */
Q_ASSERT_ID(110, a != (QActive *)0);
a->head = (uint8_t)0;
a->tail = (uint8_t)0;
a->nUsed = (uint8_t)0;
#if (QF_TIMEEVT_CTR_SIZE != 0)
for (n = (uint_fast8_t)0; n < (uint_fast8_t)QF_MAX_TICK_RATE; ++n) {
a->tickCtr[n].nTicks = (QTimeEvtCtr)0;
#ifdef QF_TIMEEVT_PERIODIC
a->tickCtr[n].interval = (QTimeEvtCtr)0;
#endif /* def QF_TIMEEVT_PERIODIC */
}
#endif /* (QF_TIMEEVT_CTR_SIZE != 0) */
}
#ifdef QV_INIT /* initialization of the QV-nano kernel defined? */
QV_INIT(); /* port-specific initialization of the QV-nano kernel */
#elif defined QK_INIT /* initialization of the QK-nano kernel defined? */
QK_INIT(); /* port-specific
QPnano代码解析
最新推荐文章于 2025-07-20 12:00:29 发布

最低0.47元/天 解锁文章
95





