Part Number:TMS320C6678Other Parts Discussed in Thread:SYSBIOS
在主函数中动态创建了一个任务A,然后再任务A中创建任务1和任务2,其中任务1优先级低,打印后一直处于while(1)死循环中,任务2优先级高,循环打印。
按照sysbios的抢占式来看,虽然任务1处于死循环中,但是高优先级的任务2应该能抢占得到时间片执行打印啊,但是结果只打印了任务1,请问这是为什么啊?
现在我通过网络接收外部指令,收到指令后执行一系列的运算,发现进入运算后网络卡死,运算完成后网络恢复,但是我还需要通过网络时时获取当前运算的进度,请问怎么实现呢?
tskCreateTask(tsk1, NULL, 20*1024, "tsk1", 6);
tskCreateTask(tsk2, NULL, 20*1024, "tsk2", 7);
void tsk1()
{
while(1)
{
printf("I am tsk1\r\n");
while(1);
}
}
void tsk2()
{
while(1)
{
printf("I am tsk2\r\n");
TaskSleep(1000);
}
}
Shine:
需要用semaphore信号量进行任务调度,tsk1用semaphore_post发送一个信号量,tsk2 semaphore_pend等到信号量后执行,请参考sys/bios user guide。4.1.1 Semaphore Examplehttps://www.ti.com/lit/ug/spruex3v/spruex3v.pdf
,
ddd dd:
那sys/bios操作系统的抢占性指的是什么呢?能否举例说明,谢谢~
,
Shine:
高优先级线程抢占低优先级线程。例子请看上面的sys/bios user guide Figure 3-2. Preemption Scenario.