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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11573|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-6-30 11:21:42 | 只看该作者
USB BULK 是 PIO 模式当然占用 CPU 资源
默认情况下 StarterWare USB 库只在 USB DEV MSC / USB HOST MSC 模式提供 CPPIDMA 支持

http://processors.wiki.ti.com/index.php/StarterWare_USB


之前我们有在 BULK 模式使能 CPPI DMA 但是速度提升不明显 如果有需要可以邮件联系技术支持获取

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

10

主题

30

帖子

158

积分

注册会员

Rank: 2

积分
158
板凳
 楼主| 发表于 2015-6-30 14:07:53 | 只看该作者
希望缄默 发表于 2015-6-30 11:21
USB BULK 是 PIO 模式当然占用 CPU 资源
默认情况下 StarterWare USB 库只在 USB DEV MSC / USB HOST MSC  ...

非常感谢您耐心的解答!我又用usb_dev_msc试了一下(去掉了源码中ramdisk的读写),arm端也是每隔30ms向c6748发送17k的数据,这时CPU使用率竟然飙到了90%,比没有使用cppidma的usb_dev_bulk还高,这是为什么呢?理论上usb_dev_msc使用了dma不是应该省一些性能的吗?
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
地板
发表于 2015-6-30 20:09:31 来自手机 | 只看该作者
不会吧 你是怎样统计 cpu 占有率的?
回复 支持 反对

使用道具 举报

10

主题

30

帖子

158

积分

注册会员

Rank: 2

积分
158
5#
 楼主| 发表于 2015-7-1 08:40:33 | 只看该作者
希望缄默 发表于 2015-6-30 20:09
不会吧 你是怎样统计 cpu 占有率的?

用Load_getCPULoad()函数获得的

点评

移植到 SYS/BIOS 下了?  详情 回复 发表于 2015-7-1 09:11
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
6#
发表于 2015-7-1 09:11:32 | 只看该作者
silent123 发表于 2015-7-1 08:40
用Load_getCPULoad()函数获得的

移植到 SYS/BIOS 下了?
回复 支持 反对

使用道具 举报

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%左右呢?

谢谢!
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 08:51 , Processed in 0.041728 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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