kejun
驱动牛犊
驱动牛犊
  • 注册日期2001-06-28
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1809回复:3

我的bulk,我的程序,高手请指教!

楼主#
更多 发布于:2001-09-10 10:42
我用的cypress的an2131q的板子,8051内核是24Mhz。
我做了一个bulk out的程序,传送1M字节,然而我用了17秒的时间,也是才60Kbytes/s,你们都说至少有400~500k的,能看一下我的固件,哪里还能改的,在这里谢谢了!
begin:  mov  r7,#00h
        mov  r6,#40h
        .......(bulk ep2out 初始化,and pair ep3out)
loop:   mov  dptr,#OUT2CS;
        movx a,@dptr
        jb   acc.1,loop
        MOV DPTR,#OUT2BC
        MOVX A,@dptr
        ............  ;(1) (从out2buf中取数,)  
        MOV DPTR,#OUT2BC
        MOVX @DPTR,A    
        djnz r7,loop
        djnz r6,goon
        ljmp out
goon:   mov  r7,#00h
        ljmp loop
out:    ............    (到此1M完)
        程序中如果不处理out2buf中的数据,而直接再去握手信号,对速度也没多大改善。我该怎么办?有什么地方要改进的?
如果用中断的方式会不会快点。(我没有试,估计影响不大)请高手赐教,我将不胜感激!!!
我的email:netinfo@cn99.com

最新喜欢:

sunmaculasunmac...
kejun
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-10 17:55
我用中断方式,接收1MB用了2.3s,8MB用21s.
kejun
驱动牛犊
驱动牛犊
  • 注册日期2001-06-28
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-09-12 16:48
可是现在我试了中断方式并没有丝毫的起色啊!怎么办?
kejun
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-09-12 19:03
[QUOTE]原本由 kejun 发表
[B]我用的cypress的an2131q的板子,8051内核是24Mhz。
我做了一个bulk out的程序,传送1M字节,然而我用了17秒的时间,也是才60Kbytes/s,你们都说至少有400~500k的,能看一下我的固件,哪里还能改的,在这里谢谢了!
begin:  mov  r7,#00h
        mov  r6,#40h
        .......(bulk ep2out 初始化,and pair ep3out)
loop:   mov  dptr,#OUT2CS;
        movx a,@dptr
        jb   acc.1,loop
        MOV DPTR,#OUT2BC
        MOVX A,@dptr
        ............  ;(1) (从out2buf中取数,)  
        MOV DPTR,#OUT2BC
        MOVX @DPTR,A    
        djnz r7,loop
        djnz r6,goon
        ljmp out
goon:   mov  r7,#00h
        ljmp loop
out:    ............    (到此1M完)
        程序中如果不处理out2buf中的数据,而直接再去握手信号,对速度也没多大改善。我该怎么办?有什么地方要改进的?
如果用中断的方式会不会快点。(我没有试,估计影响不大)请高手赐教,我将不胜感激!!!
我的email:netinfo@cn99.com
 [/B][/QUOTE]

因为设备总是被动的,在 firmware中可以不要r6 r7的循环计数,反正有一个bulk out中断就去服务一次直到主机方发完所有数据,每次从主机接收64B.中断服务程序尽量简短,用时最好不超过1ms.
另外也许跟主机程序发送数据的速率有关系,有个帖子讲了这个问题,建议看看。
游客

返回顶部