|
小弟最近在用EMWIN做实验,建立一个对话框,有一个BUTTON,点击BUTTON后将数据存入U盘 。
思路是 开两个线程,一个是 对话框, 另一个是 USBH_Process。如下:
对话框线程
void emwindemo_task(void *p_arg)
{
OS_ERR err;
GUI_CURSOR_Show();
GUI_Init();
CreateCONSOLE();
while(1)
{
GUI_Delay(10);
GUI_Exec();
OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_PERIODIC,&err);//ÑÓʱ5ms
}
}
USB监视线程
void led0_task(void *p_arg)
{
OS_ERR err;
while(1)
{
USBH_Process(&USB_OTG_Core, &USB_Host);
OSTimeDlyHMSM(0,0,0,50,OS_OPT_TIME_PERIODIC,&err);//ÑÓʱ50ms
}
}
现在问题是,当U盘插入 并识别的瞬间, 另一个线程就死机了。 整个系统就死了。
我用例程中的实验测试(USB HOST),测试U盘和电路都是没问题的。区别就是,例程是裸机,没有用UCOS系统,直接死循环调用 USBH_Process。而我希望把U盘识别和操作放在EMWIN里。
另外,发现 ,若在线程中调用 USBH_Process时前后加锁/解锁, 无法进入 USH_User_App函数,不知怎么回事
请问是什么原因呢? |
|