我在uC/OS的中断服务程序中只要不调用函数,中断服务程序是可以运行的,但是一旦中断服务函数中涉及信号量,则外部等待这个信号量的任务只会执行一次就死在那里了!
串口中断接收程序:
interrupt 20 void iUART0_Receive(void){
OSIntEnter();
UART0Rdata = SCI0DRL;
SCI0SR1_RDRF=1;
OSSemPend(Semprintp,0,&err);
printp(uart0_putchar,"\n Received Data is :%d",UART0Rdata);
OSSemPost(Semprintp);
OSIntExit();
} |