Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

USBDevice模式下SETUP在线程模式中处理无法发包 #8

Open
ranbochen opened this issue Apr 14, 2020 · 1 comment
Open

USBDevice模式下SETUP在线程模式中处理无法发包 #8

ranbochen opened this issue Apr 14, 2020 · 1 comment

Comments

@ranbochen
Copy link

主机使用CTRL-TRANSFER来获取数据的时候
如果不在SETUP回调函数(class-handler)中立即发送数据
而转到线程中再调用tusb_control_send,则主机无法收到发送的数据
用wireshark抓包,返回的包长度为0字节

比如:HID-GET-REPORT
如果在SETUP中断中立即调用tusb_control_send发送数据,则主机收到正确数据
如果转发到线程模式,在线程中调用tusb_control_send,则主机收到0字节包

@xtoolbox
Copy link
Owner

主机使用CTRL-TRANSFER来获取数据的时候
如果不在SETUP回调函数(class-handler)中立即发送数据
而转到线程中再调用tusb_control_send,则主机无法收到发送的数据
用wireshark抓包,返回的包长度为0字节

比如:HID-GET-REPORT
如果在SETUP中断中立即调用tusb_control_send发送数据,则主机收到正确数据
如果转发到线程模式,在线程中调用tusb_control_send,则主机收到0字节包

目前TeenyUSB没有为控制传输设计延迟处理机制,所以出现了这样的情况。感谢你的反馈,后续考虑这种多线程情形下的控制传输处理问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants