阅读:1113回复:3
d12调试:关于setup包
耽误了很久还没有完成枚举,对程序流程不太清楚,求助斑竹和大虾们。以下是我的理解:
比如主机发送了get descriptor,程序先进入中断,执行ep2_rxdone()接收数据,完了就跳出中断,然后执行主程序里的control_handler(),执行标准请求处理中的get_descriptor()。 是这样吗,望不吝赐教。 |
|
沙发#
发布于:2004-10-28 22:39
这个问题论坛上多的很,你嗖嗖看,多看些,思路就清楚了。我就是这样学的。
|
|
板凳#
发布于:2004-10-29 10:52
比如主机发送了get descriptor,程序先进入中断,执行ep2_rxdone()接收数据,完了就跳出中断,然后执行主程序里的control_handler(),执行标准请求处理中的get_descriptor()。
主机发送了get descriptor 设备会先受到setup包, 中断激起, 中断服务例程分析, 知其为setup包, 解析数据, 获得其要求(这都有固定的数据结构), 并设置EPPFALG为setup状态。 退出。此时固件主程序正在运行, 其根据EPPFALG的标志知道主机在要描述符,再调用control_handler的get_descriptor, 并设置下一个状态。 你说的有部分是错误的。 这是控制传输,在端点0, 不是端点2。 所以只能是端点0的rxdone. 希望对你有帮助。 我也是新手。 也在扣他们的代码, 希望彼此能互相交流 谢谢 |
|
地板#
发布于:2004-11-02 15:42
谢谢两位,这个贴子我发了两遍,原因是当时发了一遍看不到,就是这一篇。我的问题早已解决,再次感谢!!
|
|