μC/OS-II OSStart()和起始任务谁先运行?
代码示意如下:main()
{
OSInit():
...
OSTaskCreateExt(APPTaskStart,...);
...
OSStart();
}
APPTaskStart()
{
...
OSTaskCreateExt(...);
while(1)
{
...
}
}
请教各位,在main()函数创建其实任务的时候会去运行APPTaskStart()吗?也就是说APPTaskStart()先于系统启动。 不会啊,那时候OSRUNING是false, 不会启动调度 不会,在OSStart建立多任务运行环境前,OSTaskCreateExt函数只会把任务添加到就绪队列中去、而不会进行任务调度。
你只要保证调用OSStart前别开中断、别主动调用任务调度函数,就可以保证直到OSStart结束的地方才进入多任务环境、才运行就绪队列中优先级最高的任务。
注意:OSStart系统调用永不返回!(在μC/OS-Ⅱ2.52之前是这样的,之后的版本我不了解) Eric2013 发表于 2013-6-4 20:27 static/image/common/back.gif
不会啊,那时候OSRUNING是false, 不会启动调度
看了1楼的回复才知道还有个“OSRUMING”的Flag,时间过去太久、都已经不太记得了。 创建APPTaskStart()的时候不会执行该任务,只有运行OSStart()后才会运行APPTaskStart()。uC/OS在OSStart()之前必须至少建立一个任务(除空闲任务和统计任务之外)
页:
[1]