阅读:1070回复:2
1581发送所有描述符时的问题(16位数据线)请教做过1581GENERIC16位数据总线的朋友: 在发送所有配置,接口,端点描述符时,因为配置和接口描述符都是9个byte,也就是奇数个时,16位数据总线每次发送两个,所以就会多出一个错误的“第10个byte”,又由于是三个描述符连续发送,中间好像是没有间隔的,那么下一次发接口描述符之前也就有1个byte是错误的,这样发送过去应给会出错。查了1581寄存器没有把16位数据总线配置成8位的。 想请教下做过的朋友,有没有好的方法解决,谢谢。 |
|
沙发#
发布于:2007-09-11 17:22
把前一个9字节的最后那个byte和下一个描述符的第一个byte拼起来组成一个16位,一次类推
如果总的数据量是奇数,就现在datacount寄存器里写入这个数在按上述方法操作,最后一个字节系统会自动被截掉 |
|
板凳#
发布于:2007-09-12 17:33
谢谢jinghuiren
这个办法我也考虑过,但是每个描述符都是一个单独的结构体,依次发送描述符的话(指针递加)没法跳到下一个的描述符首字节去。无奈之下,我只有把这几个描述符定义成一个大的描述符,问题解决。 |
|