QF实时框架:原理、实现与移植指南
1. 集合操作与优先级集合
在系统开发中,集合操作是常见的需求。对于集合元素的插入和移除操作,以下是具体的实现方式:
- 插入元素 :将元素 n_
插入到集合 me_
中,使用如下宏定义实现:
#define QPSet64_insert(me_, n_) do { \
(me_)->bits[QF_div8Lkup[n_]] |= QF_pwr2Lkup[n_]; \
(me_)->bytes |= QF_pwr2Lkup[QF_div8Lkup[n_] + 1]; \
} while(0)
- 移除元素 :从集合
me_
中移除元素n_
,使用如下宏定义实现:
#define QPSet64_remove(me_, n_) do { \
(me_)->bits[QF_div8Lkup[n_]] &= QF_invPwr2Lkup[n_]; \
if ((me_)->bits[QF_div8Lkup[n_]] == (uint8_t)0) { \
(me_)->bytes &= QF_invPwr2Lkup[QF_div8Lkup[n_] + 1]; \
} \
} whil