c6748 usb_dev_bulk传输很耗性能 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11624|回复: 14
打印 上一主题 下一主题

c6748 usb_dev_bulk传输很耗性能

[复制链接]

10

主题

30

帖子

158

积分

注册会员

Rank: 2

积分
158
跳转到指定楼层
楼主
发表于 2015-6-29 23:46:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我的系统由arm和c6748组成,arm端使用usb把声音数据传输给6748,再由c6748对声音进行编码或者解码(g729、g723、ilbc等算法)后通过usb把数据传给arm端,c6748使用的usb驱动是startware里面的usb_dev_bulk。

问题是,当传输的数据量较大时(arm端每30ms向c6748写17k的数据),c6748光传输数据就耗掉了40%的cpu。请问要怎么解决这个问题?在usb_dev_bulk驱动中加入cppidma的使用?使用其他类型的usb传输???还是其他办法,求走过路过的大神给点提示,不胜受恩感激!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

7

主题

45

帖子

169

积分

注册会员

Rank: 2

积分
169
15#
发表于 2016-12-30 00:40:22 | 只看该作者
xtong533 发表于 2016-12-29 20:01
我也遇到了CPPI DMA USB 的问题,请问,怎样发邮件索取

请问,c6748 usb_dev_bulk在没有CPPI DMA的情况下速度达到了多少?
加了CPPI DMA的情况下速度达到了多少?
回复 支持 反对

使用道具 举报

7

主题

45

帖子

169

积分

注册会员

Rank: 2

积分
169
14#
发表于 2016-12-29 20:13:03 | 只看该作者
silent123 发表于 2015-7-1 14:15
1、是的,移植到sysbios下了。程序运行起来后,在主机下有节点/dev/sda,我使用open函数打开设备,然后调 ...

请问 CCPI DMA 该怎样配置寄存器。能把代码贴出来吗
回复 支持 反对

使用道具 举报

7

主题

45

帖子

169

积分

注册会员

Rank: 2

积分
169
13#
发表于 2016-12-29 20:01:57 | 只看该作者
希望缄默 发表于 2015-7-2 10:45
我们有使能 CPPI DMA USB BULK 的例程 你可以发邮件索取的

我也遇到了CPPI DMA USB 的问题,请问,怎样发邮件索取
回复 支持 反对

使用道具 举报

10

主题

30

帖子

158

积分

注册会员

Rank: 2

积分
158
12#
 楼主| 发表于 2015-7-3 17:55:43 | 只看该作者
希望缄默 发表于 2015-7-2 10:45
我们有使能 CPPI DMA USB BULK 的例程 你可以发邮件索取的

谢谢,我自己弄了一下,但是遇到了一些问题,想向您请教一下:
1、cppidma接受到数据后产生的中断是不是就是usb的那个中断(SYS_INT_USB0)?
2、现在我使用dmaRxCompletion()函数已经可以从队列中读出主机发送过来的数据,但是主机使用usb_bulk_write函数发送数据一段时间后就阻塞住了,不能再发送数据了。请问您遇到过相同的问题吗?

谢谢!
回复 支持 反对

使用道具 举报

10

主题

30

帖子

158

积分

注册会员

Rank: 2

积分
158
11#
 楼主| 发表于 2015-7-3 14:02:21 | 只看该作者
希望缄默 发表于 2015-7-2 10:45
我们有使能 CPPI DMA USB BULK 的例程 你可以发邮件索取的

谢谢,我自己弄了一下,遇到了一些问题,希望您帮忙解答一下。
1、CPPIDMA接受到数据后产生的中断是不是就是USB的那个中断(SYS_INT_USB0)?
2、我现在调用dmaRxCompletion函数已经可以正确获取主机发送过来的数据了,但是主机发送一段时间的数据后就发送不过去了,一直阻塞在usb_bulk_write()函数,可能是c6748这边哪里没有处理好,请问您遇到过相同的问题吗?

谢谢
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
10#
发表于 2015-7-2 10:45:34 | 只看该作者
silent123 发表于 2015-7-1 22:55
对您耐心的帮助表示由衷的感谢!

我想把cppidma用到usb_dev_bulk试试,学着usb_dev_msc里面弄了一下,但 ...

我们有使能 CPPI DMA USB BULK 的例程 你可以发邮件索取的
回复 支持 反对

使用道具 举报

10

主题

30

帖子

158

积分

注册会员

Rank: 2

积分
158
9#
 楼主| 发表于 2015-7-1 22:55:09 | 只看该作者
希望缄默 发表于 2015-7-1 19:40
理论上是这样的  但是我觉得很奇怪 msc 方式不应该占用率这么高 目前我也没有做过响应测试 可能帮不上你了  ...

对您耐心的帮助表示由衷的感谢!

我想把cppidma用到usb_dev_bulk试试,学着usb_dev_msc里面弄了一下,但是不能工作。感觉对cppidma的工作原理还是很模糊,看了几遍datasheet里面的介绍也没看懂,您能提供给我一些cppidma的学习资料吗?最好是中文的,谢谢!

点评

我们有使能 CPPI DMA USB BULK 的例程 你可以发邮件索取的  详情 回复 发表于 2015-7-2 10:45
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
8#
发表于 2015-7-1 19:40:39 来自手机 | 只看该作者
理论上是这样的  但是我觉得很奇怪 msc 方式不应该占用率这么高 目前我也没有做过响应测试 可能帮不上你了
回复 支持 反对

使用道具 举报

10

主题

30

帖子

158

积分

注册会员

Rank: 2

积分
158
7#
 楼主| 发表于 2015-7-1 14:15:55 | 只看该作者
希望缄默 发表于 2015-7-1 09:11
移植到 SYS/BIOS 下了?

1、是的,移植到sysbios下了。程序运行起来后,在主机下有节点/dev/sda,我使用open函数打开设备,然后调用write和read函数进行数据的读写的。数据能够进行读写,就是传输较大数据时cpu使用率很高!

2、请问如果我把cppidma移植到usb_dev_bulk中,这时进行数据的传输是不是会减少cpu资源的使用,效果明显吗?比如说,我现在主机每30ms向c6748写17K的数据,c6748会耗掉40%左右的性能,如果引入cppidma的使用能否降到10%左右呢?

谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-5-21 04:47 , Processed in 0.043046 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表