Cypress技术论坛
直播中

陆焙兆

7年用户 192经验值
私信 关注
[问答]

重启后由于USB断开/重新连接非常短而导致选项“重新枚举无法完成”的CyFx3BootU***Start失败

通常我们使用CYFX3BOOTUSBSTART(CyTr..,…),选项“重新枚举将不被完成”,并按预期工作。
在异常的情况下,设备上电,启动它的USB连接周期,在CYFX3BOOTUSTBSTART,CYFX3BOOTUBBConnect之后,但在设备变得模糊不清之前,出现一个非常短的USB断开/重新连接。从这一刻起,设备就不会启动它的枚举周期,固件停留在引导加载程序,等到USB连接就绪。
在调用CYFX3BOOTUBSCONtiON之后,通过重新启动调试会话,可以在调试会话中很容易地再现这种行为。从下到下一个设备复位(电源周期或CYFX3BOOTDEVICESESET),不会触发USB枚举。在调试器中重新加载固件将无法修复。
如果我们调用CYFX3BOOTUSBSTART(CyFalm,…),选择“重新枚举”将比它在任何情况下都能工作。
是否有一种方法在第二阶段引导加载程序中复位USB,以确保与第一次启动后一样的行为?用CYFX3BOOTUSBSTART选项“撤销枚举”将不会撤销更改吗?

以上来自于百度翻译


     以下为原文
  Normally we use CyFx3BootU***Start( CyTrue, ..) with option "Re-Enumeration will NOT be done" and it works as expected.

At the unusual situation where the device power up, start it's USB connect cycle, short after CyFx3BootU***Start, CyFx3BootU***Connect but before device became emumerated, a very short USB disconnect / re-connect occur. From this moment on, the device don't start it's enumeration cycle, firmware stay at bootloader and wait until USB connection is ready.

This behaviour can be easily reproduced within a debug session, by restarting the debug session directly after CyFx3BootU***Connect have been called. From than till next device reset (power cycle or CyFx3BootDeviceReset), no USB enumeration will be triggered. Further firmware reloads within the debugger won't fix that.

If we call CyFx3BootU***Start( CyFalse, ..)  with option "Re-Enumeration will be done" than it seems to work in any situation.

Is there a way to reset the USB within Second Stage Bootloader to ensure the same behavior like after first power up? Any thing to undo the changes cause by CyFx3BootU***Start - option "Re-Enumeration will NOT be done"?

回帖(2)

张超

2018-9-26 17:18:48
你好,
您是指枚举之前和调用CYFX3BOOTUBConnect()之后发生的(DeNeNect和Access)吗?
但是在上述断开和连接之后,该设备没有枚举?
-为了重现这个问题,您建议使用JTAG调试吗?
当做,
血竭

以上来自于百度翻译


     以下为原文
  Hi,
 
Do you mean there is a (diconnect&connect) happening before enumeration and after calling CyFx3BootU***Connect()?
But after the above disconnect and connect, the device does not enumerate?
 
- For reproducing the problem, did you suggest using JTAG debugging?
 
Regards,
Hemanth
举报

陆焙兆

2018-9-26 17:35:13
引用: xianhaizhe 发表于 2018-9-25 19:06
你好,
您是指枚举之前和调用CYFX3BOOTUBConnect()之后发生的(DeNeNect和Access)吗?
但是在上述断开和连接之后,该设备没有枚举?

你好,
短断开/连接不是由FX3或我们的设备引起的。这是客户的插件电缆,等待很短的时间删除它,并再次插入它。地狱知道为什么,但如果他找到正确的评论之间的CYFX3BOOTUS连接()和枚举结束,为他的插件行动,比相机从未枚举。这可以用JTAG调试器重放,因为我认为FX3在这个插件动作期间不被完全清除,并且在从第二阶段引导加载程序到应用程序切换期间避免重新枚举的设置仍然存在,并导致这种行为(只是猜测)。
当做,
海子

以上来自于百度翻译


     以下为原文
  Hi,
the short disconnect / connect is not caused by fx3 or our device. It's the customer which plugin the cable, wait very short time remove it and plug it in again. The hell know's why, but if he find the right comment between CyFx3BootU***Connect() and end of enumeration, for his plug action, than the camera never enumerate. This can be reproduced with JTAG debugger, because I think the the fx3 is not entierly cleared during this plug action and the settings, which avoid re-enumeration during switch from second stage bootloader to application, are still in place and cause this behaviour (only a guess).
 
Regards,
Heiko
举报

更多回帖

发帖
×
20
完善资料,
赚取积分