TI中文支持网
TI专业的中文技术问题搜集分享网站

关于dm3730 arm端cpu占用率问题

在dm3730 的arm端,我采用摄像头采集回来的视频码流存在在A_buf,但是A_buf 的内容我想传给dsp端进行算法处理,所以我采用Memory_contigAlloc 函数分配了B_buf。

程序中,我单纯地将A_buf的内容通过memcpy拷贝到B_buf中, 发现arm端cpu占用率达到60%左右;

但是如果B_buf是通过new出来的话,同样的memcpy操作,arm端cpu占用率基本在10%左右。

(ps:采集回来的视频图像分辨率为720×576 格式为UYVY)

请问问题出在哪里呢?Memory_contigAlloc函数分配的内存中,我是有调节MAR寄存器进行cache的。

Chris Meng:

Eric,

一定需要复制数据么?能否仅仅传递buffer的指针首地址给DSP?

eric eric3:

回复 Chris Meng:

不行的吧,arm和dsp共用的那块内容不是特定的一块空间,由cmem管理的吗

Chris Meng:

回复 eric eric3:

Eric,

能否从cmem里面申请buffer作为采集的输出buffer?

eric eric3:

回复 Chris Meng:

 你好,

我看到它摄像头采集的分配和管理内存使用mmap的,管理的一般是连续内存,但也可能是非连续的,这一块应该是在划分为linux空间的内存的,而arm和dsp共用的内存在cmem空间,我理解你的意思应该是将mmap指定的内存空间指定在cmem中?这一块我之前尝试过,但是无法正常映射这块内容的内容。

Chris Meng:

回复 eric eric3:

Eric,

DM36x是一个纯ARM9的系统,也使用了CMEM,ARM9是可以使用CMEM分配出的空间的。所以我觉得在DM37xx上应该是类似的。你能再试试么?

赞(0)
未经允许不得转载:TI中文支持网 » 关于dm3730 arm端cpu占用率问题
分享到: 更多 (0)