我的系统由七个任务组成。我创建了一些演示 RTP 来检查我的系统,如下所示:
int main()
{
taskSpawn("/task1" , 107 , VX_NO_STACK_FILL , 2000 , (FUNCPTR)task1, 0,0,0,0,0,0,0,0,0,0);
taskSpawn("/task2" , 106 , VX_NO_STACK_FILL , 2000 , (FUNCPTR)task2, 0,0,0,0,0,0,0,0,0,0);
taskSpawn("/task3" , 105 , VX_NO_STACK_FILL , 2000 , (FUNCPTR)task3, 0,0,0,0,0,0,0,0,0,0);
taskSpawn("/task4" , 104 , VX_NO_STACK_FILL , 2000 , (FUNCPTR)task4, 0,0,0,0,0,0,0,0,0,0);
taskSpawn("/task5" , 105 , VX_NO_STACK_FILL , 2000 , (FUNCPTR)task5, 0,0,0,0,0,0,0,0,0,0);
taskSpawn("/task6" , 106 , VX_NO_STACK_FILL , 2000 , (FUNCPTR)task6, 0,0,0,0,0,0,0,0,0,0);
taskSpawn("/task7" , 101 , VX_NO_STACK_FILL , 2000 , (FUNCPTR)task7, 0,0,0,0,0,0,0,0,0,0);
taskExit(OK);
}
void task1() { taskDelay(7); }
void task2() { taskDelay(13); }
void task3() { taskDelay(313); }
void task4() { taskDelay(19); }
void task5() { taskDelay(188); }
void task6() { taskDelay(10); }
void task7() { taskDelay(10); }
我运行了 RTP 并连接了性能分析器。性能分析器给了我每个任务的 CPU 使用率。我要检查的是每个任务是否按时执行,例如我想确保 task1 每 7*16 = 112 毫秒执行一次(我的系统时钟频率是 60HZ,这意味着调度程序每 16 毫秒调用一次)
问题: 1. 探查器中是否有任何方法可以确保发生这种情况。2.如果没有怎么检查这个?
谢谢。