![]() |
1
2
虽然VxWorks是一个基于优先级的操作系统,但可以实现这种类型的协作多任务。
只需将所有任务放在同一位置即可
相同的
优先事项
请注意,您必须确保禁用内核时间切片(kernelTimeSlice(0))。
|
![]() |
2
2
我曾经在一个相对较大的嵌入式产品上工作过。时间切片被禁用,当线程希望允许另一个线程运行时,它们将显式地执行taskDelay。 我必须得出结论:禁用vxWorks切片会导致疯狂。避免它,如果它是在你的权力范围内这样做。
禁用任务切片可以有效地使系统中的每个任务都依赖于其他每个任务。如果您有三项以上的任务,或者 认为 您最终可能会有三个以上的任务,您确实需要构建系统来实现它。 |
![]() |
3
0
|
![]() |
4
0
你所描述的基本上是:
然而,如果您还没有一个调度器,那么现在是实现一个调度器的好时机。在最简单的情况下,每个入口点既可以从任务类继承,也可以实现任务接口(取决于语言)。 |
![]() |
5
0
您可以使所有任务具有相同的优先级并使用任务延迟(0),也可以在需要使非预先准备工作的低优先级任务中使用tasklock和taskunlock。 |
![]() |
achoora · 如何使用内置函数而不是空检查来验证指针? 7 年前 |
![]() |
Dmitry Chirkin · vxWorks内核外壳功能 9 年前 |
![]() |
Ajoy · 调用taskSpawn()块,直到派生的任务完成 9 年前 |