FreeRTOS关闭时间片调度后,如果程序依然有同优先级任务的问题
对于FreeRTOS来说毫无规律性。这两个同优先级任务所处于的等级位置,调度前还是后启动等等,会有各种各样的执行情况
不像uCOS-III那么明确,对于III来说,如果没有开启时间片,同优先级会议类似合作式调度方式执行
ucos 毕竟上过火星 具体可能得看代码。文档里是这么说的:
Any number of tasks can share the same priority. If configUSE_TIME_SLICING is not defined, or if configUSE_TIME_SLICING is set to 1, then Ready state tasks of equal priority will share the available processing time using a time sliced round robin scheduling scheme. 本帖最后由 caicaptain2 于 2020-4-16 14:36 编辑
我猜测,同优先级任务的执行顺序应该是和创建的顺序一致的。
另外,如果切换时间是1ms的话,有可能是每个任务轮流执行1ms,也可能是一个任务执行完了,下个任务再执行。 可以观察一下。
emwin 发表于 2020-4-16 13:48
具体可能得看代码。文档里是这么说的:
看代码了,逻辑关系不好捋顺。 caicaptain2 发表于 2020-4-16 14:34
我猜测,同优先级任务的执行顺序应该是和创建的顺序一致的。
另外,如果切换时间是1ms的话,有可能是每个 ...
其实没关系,实际测试还挺乱的,什么结果都有。 caicaptain2 发表于 2020-4-16 14:34
我猜测,同优先级任务的执行顺序应该是和创建的顺序一致的。
另外,如果切换时间是1ms的话,有可能是每个 ...
FreeRTOS同优先级的任务就是轮流执行,每个任务执行一个时间片。
页:
[1]