CoOS提供了一个事件标志的机制,用起来跟信号量差不多。
1、CoCreateFlag(),创建一个事件标志
OS_FlagID CoCreateFlag (BOOL bAutoReset,BOOL bInitialState);
bAutoReset,为0表示手动复位,为1表示自动复位。
bInitialState,为0表示初始状态是未就绪的,为1表示已就绪。
2、CoSetFlag(),设置一个事件标志。
StatusType CoSetFlag (OS_FlagID id);
3、CoWaitForSingleFlag(),等待一个事件标志。
StatusType CoWaitForSingleFlag (OS_FlagID id,U32 timeout);
timeout,表示等待事件标志的时限。
4、CoClearFlag(),清除事件标志。
StatusType CoClearFlag (OS_FlagID id);
5、事件标志跟信号量的区别。
上面的代码的功能,跟信号量的功能是一样的,区别在于事件标志提供了一个CoClearFlag()函数,如果不清除事件标志的话,LED2是会一直闪烁的。