阅读:1777回复:11
MaximumTransferSize的设置对效率的影响问题,及在传输数据时程序为什么会突然退出?
我用的是pdiusbd12芯片,修改的DDK中的bulkusb驱动。
bulk端点一次包大小为64字节。我在驱动中设置pipe的MaximumTransferSize为64时,速率能够达到最大,传输64字节需要1ms,但如果我设置为8K或64K,那么速度就降了许多,甚至传输64字节需要15ms。 更要命的是传输一些数据后程序会自动退出,退出的时间跟MaximumTransferSize的大小也有关,如果为64,程序执行的时间会长一些,否则就会短很多。 我是新手,还请各位大哥不吝指教。 |
|
最新喜欢:![]() |
沙发#
发布于:2003-09-22 11:58
没问题,有事就来驱网吧! :D :D
|
|
板凳#
发布于:2003-09-22 11:57
呵呵,以后还望版主多多指点。再次表示感谢。
My Email: wxbfly@163.com My QQ:37737098 |
|
地板#
发布于:2003-09-22 11:36
兄弟!以后多多交流!!! :D :D :D
[编辑 - 9/22/03 by flytomoon] [编辑 - 9/22/03 by flytomoon] |
|
地下室#
发布于:2003-09-22 11:12
呵呵,找到问题。真的是缓冲区不够啊。没想到会出这样的问题,它也不会出现非法操作直接就退出,真让人摸不着头脑。
OK,谢谢版主,结贴 |
|
5楼#
发布于:2003-09-22 10:59
好啊,有问题就说! :D
|
|
6楼#
发布于:2003-09-22 10:59
再谢版主:
我仔细查查先 |
|
7楼#
发布于:2003-09-22 10:58
觉得好像是上位机的程序或固件有问题,驱动是不会导致程序突然退出的,你再查查? :D
|
|
8楼#
发布于:2003-09-22 10:53
周立功的驱动和上位机程序还是有缺陷的,仔细看看,不要全信他的。上位机的调用和驱动里一定要对应。
|
|
9楼#
发布于:2003-09-22 10:51
会不会是因为你开的缓冲区写满了没有清空啊?要不然不会有此问题的。
|
|
10楼#
发布于:2003-09-22 10:47
多谢版主:
我也想把此值提大一些,可不知道为什么只有在设为64时传输速率才能达到最大,是不是和下位机有关? 更重要的是我实在不知道为什么程序会突然退出,什么都没留下。这让我从哪里找原因呢? 我用周立功的开发板及驱动同样会有此问题(我在程序里循环写数据,只写不读)。 |
|
11楼#
发布于:2003-09-22 10:38
你应该把aximumTransferSize设的值大些,如32K,这里的大小不是每个包的大小(64byte),而是每次DEVICEIOCONTRAL的大小,稍微大些可以减少DEVICEIOCONTRAL的调用次数,从而可以提高传输效率和速度,你可以试试。
|
|