您好!
我正在基于 TI RTOS tcpEcho 示例构建应用程序、其中 tcpWorker 任务在被调用时发出信号量、然后启用另一个应用程序任务运行。 为了进行练习、我已使被调用的应用程序任务包含无限循环(任务从未完成。) 我想知道如何使 tcpWorker 任务在应用程序任务运行时抢占应用程序任务。 我已使我的应用程序任务在配置文件中具有优先级1、但在应用程序任务运行时、tcpWorker 任务仍然永远不会运行。 要使 tcpWorker 优先于应用程序任务,我需要做什么? (请参阅下面的代码片段。)
空 tcpWorker (UARg arg0、UARg arg1)
{
int clientfd =(int) arg0;
int bytesRcvd;
int bytesSent;
char buffer[TCPPACKETSIZE];
System_printf ("tcpWorker:start clientfd = 0x%x\n"、clientfd);
Semaphore_post (Semaphore0);
while ((bytesRcvd = recv (clientfd、buffer、TCPPACKETSIZE、0))> 0){
字节 Sent = SEND (clientfd、buffer、字节 Rcvd、0);
if (bytesSent < 0 || bytesSent!= bytesRcvd){
System_printf ("错误:发送失败。\n");
中断;
}
}
system_printf ("tcpWorker stop clientfd = 0x%x\n"、clientfd);
Close (clientfd);
}
//……
void Task_0_Fxn (void){
while (1){
Semaphore_pend (Semaphore0、BIOS_wait_forever);
while (1){
//...
}
}
谢谢你
