问题:
1.对主机获描述符过程不解!!
ISP1161做主机读写U盘,要经过枚举(即主机向设备-U盘发送数据),比如获设备8个字节设备描述符,其中会用到以下(书里写控制传输):
message = *(unsigned char *)OSMboxPend(tr_instance_ptr->os_event_ptr,TRANSFER_TIMEOUT_LIMIT,&err); // 等特传输完成
OSMboxPost(hTrInstance->os_event_ptr, &hTrInstance->completion_code);
os_event_ptr = OSMboxCreate(NULL); // 创建一个消息事件
上面OSMboxPost,OSMboxPend,OSMboxCreate三个应该对获设备8个字节设备描述符是有用的,但绞尽脑汁就是想不明白有什么联系,请周工
或是用过ISP1161的高手指点迷津,大恩不言谢~~
2.描述符发送后,是怎样接收设备回传信息的?
比如主机发送了获设备8个字节设备描述符之后,主机是怎样接收设备的描述信息,是通过再次读ATL缓冲区还是通过中断读回信息?还是怎
样读回设置信息?
3.在控制传输描述符时,用了回调函数
void callback_control_transaction( transfer_instance *hTrInstance )
{
OSMboxPost(hTrInstance->os_event_ptr, &hTrInstance->completion_code);
}
上面这个回调函数是通过函数atl_set_transfer(tr_instance_ptr,data_ptr,*size_ptr, direction,callback_control_transaction )
调用的,那请问callback_control_transaction是怎样被调用的,是什么时候被调用的,是运行完atl_set_transfer函数完调用还是怎样被
调用?请高手们详细分析一下~~谢谢
|