我使用的是ucosII系统,处理器为STM32F4,我想在USB中断里发送一个信号量给USB的任务,但是发现一旦在USB的中断里发送信号量,系统立刻死机。
我把这个信号量放大别的中断里是可以正常发送和使用的。USB中断的代码如下:void OTG_FS_IRQHandler(void)
{
OSIntEnter();
OSSemPost(Sem_USB);
OSIntExit();
}
测试任务为:void USB_Task(void *p_arg)
{
(void)p_arg;
Sem_USB = OSSemCreate(0); //Create a sem for USB task
while(1)
{
OSSemPend(Sem_USB, 0, &Err);
LED_RED_FLASH;
}
}
是不是USB的代码必须在中断中运行呢?非常疑惑,一直没有找到原因所在。 |