This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

在C6678上跑Opencv,时间长了就提示内存不足,请问是什么原因呢?

现在需要c6678上使用opencv实时的处理图像。我在PC上进行软件仿真,但是每次程序跑到固定的地方都会出现内存不足的情况。

我在cmd文件中,已经配置了足够大的空间了。请问是什么原因呢?

--------------------------------------------------------------------------

opencv是使用的TI官方提供的,没有进行修改

--------------------------------------------------------------------------

我的cmd文件如下:

/*
* Linker command file
*
*/

-c
-heap 0x50000000 //1GB+256MB 堆 ~~ 动态分配内存 malloc,calloc,realloc,new分配
-stack 0x10000000 //256MB 栈~~ 静态分配内存

/* 默认地址映射 Memory Map 1 - the default */
MEMORY //描述系统实际的硬件资源
{
//存储空间标记 起始地址 长度
L1PSRAM (RWX) : org = 0x0E00000, len = 0x80000//32KB
L1DSRAM (RWX) : org = 0x0F00000, len = 0x80000//32KB
L2SRAM (RWX) : org = 0x0800000, len = 0x080000//512KB
MSMCSRAM (RWX) : org = 0xc000000, len = 0x400000//
DDR3 (RWX) : org = 0x80000000,len = 0x80000000//2GB

}

SECTIONS //描述段定位
{
.csl_vect > MSMCSRAM
.text > MSMCSRAM //可执行代码和常数(program)
GROUP (NEAR_DP)
{
.neardata
.rodata
.bss //保留程序中的全局和静态变量空间
} load > DDR3
.stack > DDR3 //存放C语言的栈
.cinit > MSMCSRAM //存放程序中的变量初值和常量
.cio > MSMCSRAM
.const > MSMCSRAM //存放程序中的字符常量、浮点常量和用const声明的常量
.data > MSMCSRAM
.switch > MSMCSRAM //存放switch语句的跳转地址表
.sysmem > DDR3 //存放C语言的堆
.far > MSMCSRAM //保留程序中用far声明的全局和静态变量 空间
.testMem > MSMCSRAM
.fardata > MSMCSRAM
platform_lib > MSMCSRAM
.init_array > MSMCSRAM
vecs > MSMCSRAM
}