新手上路
- 积分
- 39
- 金钱
- 39
- 注册时间
- 2013-5-29
- 在线时间
- 15 小时
|
20金钱
本人使用OSFlagPend函数等待一个事件标志组中的两个标志全部清零,按照以下写法出现了问题。当运行到该函数时,标志组的值为0x0002,而判断的标志为HOLD_DEC | HOLD_NORMAL = 0x0006,理论上是会被挂起的,然而并没有,直接运行通过了。
[mw_shl_code=applescript,true] OSFlagPend((OS_FLAG_GRP*)&sys.hold_state,
(OS_FLAGS )HOLD_DEC | HOLD_NORMAL,
(OS_TICK )0,
(OS_OPT )OS_OPT_PEND_FLAG_CLR_ALL |
OS_OPT_PEND_BLOCKING,
(CPU_TS* )0,
(OS_ERR* )&err);[/mw_shl_code]
按照如下写法就挂起了,可以看出,是将两个标志拆开等待的。
[mw_shl_code=applescript,true] OSFlagPend((OS_FLAG_GRP*)&sys.hold_state,
(OS_FLAGS )HOLD_DEC,
(OS_TICK )0,
(OS_OPT )OS_OPT_PEND_FLAG_CLR_ALL |
OS_OPT_PEND_BLOCKING,
(CPU_TS* )0,
(OS_ERR* )&err);
OSFlagPend((OS_FLAG_GRP*)&sys.hold_state,
(OS_FLAGS )HOLD_NORMAL,
(OS_TICK )0,
(OS_OPT )OS_OPT_PEND_FLAG_CLR_ALL |
OS_OPT_PEND_BLOCKING,
(CPU_TS* )0,
(OS_ERR* )&err);[/mw_shl_code]
另外说明一点,OS_CFG_FLAG_MODE_CLR_EN已经设置为1了。
希望各路兄弟能帮忙分析一下原因,欢迎指出代码问题
谢谢!
|
|