首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

imx51 USB HUB长时间工作失灵。

2012-12-30 
imx51 USB HUB长时间工作失效。急急急!!!硬件:imx51, USB HOST:USB3317, USB HUB:USB2517 HUB上面挂有硬盘、

imx51 USB HUB长时间工作失效。急急急!!!
硬件:imx51, USB HOST:USB3317, USB HUB:USB2517 

HUB上面挂有硬盘、USB盘、读卡器、USB 电容屏,当长时间播放硬盘歌曲时(24小时以上),每当把U盘拔出,触摸屏就不能用,串口没有什么消息输出,大约过一分钟串口输出CHub::HandleDetach(void)把所有设备(function)全部Detach.
... ...
   for (UCHAR port = 1; port <= m_usbHubDescriptor.bNumberOfPorts; port++)
    {
.. ...
        if (m_ppCDeviceOnPort[port - 1] != NULL)
        {
            m_ppCDeviceOnPort[port - 1]->HandleDetach();
             delete m_ppCDeviceOnPort[port - 1];
            m_ppCDeviceOnPort[port - 1] = NULL;
        }
    }
... ...

同时串口发现CRootHub::WaitForPortStatusChange函数fSuccess返回值从0变为1(默认状态未0):
DEBUGMSG( 1, (TEXT("-CRootHub::WaitForPortStatusChange, rPort = %d, fSuccess = %d\n"), rPort, fSuccess) );

希望多多指教,刚接触USB。谢谢
[解决办法]
freescale的人爱理不理,这很正常。除非你的公司是真正的大公司,他们可能会考虑支持一下,否则只能自己解决。

如果不等这么久,拔U盘没有问题的话,应该是代码的问题。
如果等那么久,一定要出现,可以确认是代码的问题。

看看有没有什么内存泄露之类的问题?多加一些打印,来分析短时间拔、与长时间拔的区别在哪里?
[解决办法]
这个只能在所有可能出现的地方加打印信息,看哪里出问题了。

哥,你的设计本身就很大风险,
为什么全部接USB上?

这个硬件谁想的
你要知道USB是非常敏感的设备,稍有不慎就会出问题的。

也许你不挂那么多,就什么事情都没有。

我不信你的电路没有IIC接口,用IIC接口的电容屏幕模拟IIC都行的。

热点排行