初级会员

- 积分
- 112
- 金钱
- 112
- 注册时间
- 2017-3-20
- 在线时间
- 30 小时
|
50金钱
工程里建了6个任务:#define START_TASK_PRIO 10
#define MAIN_TASK_PRIO 7
#define CHACK_TASK_PRIO 8
#define AUDIOPLAY_TASK_PRIO 4
#define UDPTEST_TASK_PRIO 6
#define TCPSERVER_TASK_PRIO 9
其中udp和tcp的任务是单独创建的,代码如下:
void network_initcomm(void)
{
httpd_init();
OSTaskCreate(udptest_task,(void *)0,(OS_STK*)&UDPTEST_TASK_STK[UDPTEST_STK_SIZE-1],UDPTEST_TASK_PRIO);
OSTaskCreate(tcpserver_task,(void *)0,(OS_STK*)&TCPSERVER_TASK_STK[TCPSERVER_STK_SIZE-1],TCPSERVER_TASK_PRIO);
}
不能执行的是tcpserver_task,代码如下:
void tcpserver_task(void *pdata)
{
pdata=pdata;
servercommand_tcpserver_init();
while(1)
{
tcpserver_task_count++;
printf("tcpserver_task_count = %d\r\n",tcpserver_task_count);
servercommand_tcpserver_rec();
delay_ms(20);
}
}
没有打印消息,就说明这个任务没有执行,我把别的任务都屏蔽掉也是不能执行,可以忽略最大任务数的限制,求指点迷津
|
最佳答案
查看完整内容[请看2#楼]
找到原因了,系统的最低延时是5ms,结果我在8优先级的任务里来了个delay_ms(1),等于就是后面的没有任务调度,那9优先级的任务自然就无法执行
|