dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2991回复:31

传输一定量的数据后,为什么会死机?

楼主#
更多 发布于:2001-10-29 21:51
我的usb驱动装好了以后,数据传输正确,可读的次数达到2M的时候
就会死机。不知是为什么?

可能出现死机的原因在什么地方呢?大家帮帮忙好吗?
我快愁死了

明明读写调用的是同一个例程,可写多少都没问题,读到2M就会死机。即我每次读 65536字节,到第33次的时候肯定会死机,重起后才好用,为什么呢?是不是什么内存没释放,还是。。。万分感谢!

还有一个问题bulkusb中提供了5个调试级别,好像只有default级别
可在softice中看见输出,对其他几个级别的作用我有点不太明白,
谁能给我介绍一下。谢谢!
[dahello 编辑于 2001-10-29 22:03]
不懂就问 :D
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-10-30 09:07

我 今天又试了一下,如果一次读32K字节,读到65次死机,数据量正好又是2M,为什么呢?有没有人和我讨论一下,万分感谢!求你们了
大虾们!
不懂就问 :D
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-10-30 11:46
读回来的数据是追加还是覆盖?
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-10-30 19:02
你是指驱动还是firemare?我觉得你说的好像是问题所在
我用驱动循环读ram中的数据,ram 64k.
你可不可以详细的给我介绍一下!
不知你在不在线!谢谢先


[dahello 编辑于 2001-10-30 19:17]
不懂就问 :D
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-10-30 21:21
我是指客户应用程序,应该跟FIRMWARE的没有关系,是否是驱动的原因我不清楚。
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-10-31 09:27
好像和firmware没有关系,我试过了
问题可能在驱动或应用程序上,驱动我用softice调试发现每次读写都很正常,会不会有什么地方在累加,而我不知道?请指教!谢谢!

应用程序我只是用readfile函数读数据写入文件中,sunkai大虾,你是指什么地方可能有累加呢?万分感谢!
不懂就问 :D
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-10-31 10:10
[QUOTE]原本由 dahello 发表
[B]好像和firmware没有关系,我试过了
问题可能在驱动或应用程序上,驱动我用softice调试发现每次读写都很正常,会不会有什么地方在累加,而我不知道?请指教!谢谢!

应用程序我只是用readfile函数读数据写入文件中,sunkai大虾,你是指什么地方可能有累加呢?万分感谢! [/B][/QUOTE]
从表面是看,你开了个2M的内存,然后不停地追加数据直到下标越界。问题好象明确多了,那就耐心查找吧,急不得的。你说会死机,多半是驱动的原因,即使应用程序对内存操作有错误,也不会死机(对不对?),仅仅报告“读写内存违例”就终止了。查应用程序,看是否存在一个2M的数组声明,文件的打开方式。查驱动,我就真虾了。:),不过,跟他33遍又何妨?
sudan
驱动牛犊
驱动牛犊
  • 注册日期2001-10-30
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-10-31 10:35
有道理!
学而时习之,烦不烦?
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-10-31 10:42
太谢谢你了,听君一席谈,胜我盲目的测n遍,谢谢你!
我仔细的查过了,在应用程序中并没有开2M的空间,而且你说的也对
如果应用程序出错可能不会导致死机,所以驱动出错的可能性最大。

我觉得如果一次传4096字节的话,2M大约是和设备打交道512次,
此时只有重起PC机才能继续的读数据。可写多少回都没有问题,但是
写一次(64K)  读一次(64K)到第33次只要是读就死机,可写就没问题, 我的驱动是根据bulkusb修改的,读写调用的历程是相同的。
我实在是想不出在那个地方会出问题,调用驱动的时候,你也清楚,都是现开的缓冲区,好像没有累加。我还得继续耐心的找,你对我的帮助很大,谢谢你,希望你再帮我出出主意。不胜感激!
不懂就问 :D
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-10-31 10:56
这里驱动高手很多,偏偏我一窍不通,惭愧!
哪位高人愿意收弟子?如果在杭州,香茶一杯立马奉上。
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-10-31 11:03
我不会写驱动,看驱动倒不少,刚刚又想到一个,我看到在驱动中对参数的检验很严格,往往实际的操作没多少,检验已经做了一大篇,有的参数是不是从应用程序带到驱动程序来的?会不会本不能通过检验而你没有做充分的检验?说错了,不要笑话。
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2001-10-31 11:54
你说得很有道理,我有检查了一下,用softice跟踪调试,发现参数好像都正确,而且每次读完应该释放的内存都释放掉了,
你经常看程序,98ddk的bulkusb的例子看过吗?
不懂就问 :D
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2001-10-31 12:07
看是看了,走马观花,好象没有搞驱动的天赋,看了也白看。动动嘴皮子不费力气,真的动手就两眼一黑,:( 。本来想好好琢磨驱动的,无奈俗事太多,背后又有老板催逼,静不下心来,一直连皮毛都摸不着。前面瞎说了一通,就算是帮你投石问路,看有没有真正的高人能帮上你。
[sunkai 编辑于 2001-10-31 12:10]
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2001-10-31 14:16
还是要谢谢你,我在等等看有没有其他的朋友给指点一下!
不懂就问 :D
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2001-10-31 14:54
没有人帮我一下吗?

不懂就问 :D
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2001-10-31 19:21
有个问题我不太明白,驱动程序读完一次数据后,下一次开始读数据
是不是重新开始呢 ? 是不是有什么东西在不断的累加呢?
我快不行了,大家不能见死不救吧!大虾门?
不懂就问 :D
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2001-10-31 21:24
你的驱动是怎么做的?说来听听。

或把你的源码发给我!

穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2001-11-01 11:17
我的驱动就是一个bulk方式的数据传输,源代码和98ddk的bulkusb的实现方式相同,你可以着重看一下读写模块ocrwblk.c,实现的方式是相同的,谢谢你 先 。我今天有仔细的研究了一下,应用程序确实没出错,肯定是驱动出错了。有时候系统还给提示说我的什么东西溢出了,如问题还存在让我和我的程序供应商联系,令我哭笑不得 :),有没有其他的大虾预见过这个问题,和我讨论讨论吧!
万分感谢!
不懂就问 :D
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2001-11-01 12:48
我开发的时候没有看过bulkusb,而是自己开发的。

你的驱动是自己做的吗?还是使用厂家提供的?

你可以检查一下驱动程序中读写完了之后是否URB包是否没有销毁?

穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
dahello
驱动中牛
驱动中牛
  • 注册日期2001-06-16
  • 最后登录2004-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2001-11-01 15:06
firmware是自己写的,可上层驱动是我参考bulkusb写的,所以出了问题就比较麻烦了,你说的urb指什么?能不能详细的解释一下,我将感激不尽,我觉得每次读的时候irp都是重新计数的。谢谢你了,
衷心的感谢你!
不懂就问 :D
上一页
游客

返回顶部