smallcsduck 发表于 2017-10-31 23:48:13

qiu-368230 发表于 2015-9-10 08:54
如果CMSIS_OS 就是封装后的freeRTos,那么CMSIS-RTOS RTX呢,他们三个之间到底是什么关系啊,谢谢...

CMSIS-RTOS 就是一种标准呗 一样的api接口

幸运四叶草 发表于 2019-10-25 23:12:28

Tony_Duan 发表于 2015-10-6 23:45
osEvent eve;
eve=osSignalWait(0,osWaitForever);
本来是可以根据信号不同在一个任务中执行不同的功能,前 ...

我也遇到这个问题了

幸运四叶草 发表于 2019-10-25 23:42:40

Tony_Duan 发表于 2015-10-6 23:45
osEvent eve;
eve=osSignalWait(0,osWaitForever);
本来是可以根据信号不同在一个任务中执行不同的功能,前 ...

我试验了下,osEvent osSignalWait (int32_t signals, uint32_t millisec)函数的参数解释有误,@paramsignals   wait until all specified signal flags set or 0 for any single signal flag.翻译:等待所有指定的信号标志设置完毕或者参数为0,等待任何一个信号标志设置。而实测发现signals设置为0,或者其它任何值,只要
调用osSignalSet (osThreadId thread_id, int32_t signal)设置了signal的任何一个bit,osSignalWait()都会继续执行。如果调用osEvent osSignalWait (int32_t signals, uint32_t millisec)时将signals参数写0,确实不会清除已经设置的标志,signals参数对应函数BaseType_t xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait )的ulBitsToClearOnExit参数,意思是退出时要清除的标志。你的问题可以不用改代码,直接写osSignalWait (0x00000007,1000)即可。
页: 1 2 [3]
查看完整版本: 哪位有CMSIS_OS 就是封装后的freeRTos的说明