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

C6727 堆溢出问题

今天进行C6727调试时发现是堆溢出了,是在每秒周期进行矩阵求逆的时候,感觉上次malloc申请的堆的空间没有释放成功,重新申请新的堆空间,堆的空间占用越来越大,直到溢出了

问题是相同的程序在同一批电装的另外一块板子上运行的时候,没有问题,释放成功,堆空间占用一直较小,出现故障的板子上软件稍作修改,加几句无关的代码重新编译故障也消失了,求逆函数是封装的库函数,使用源代码运行,故障也消失了。请教这是什么原因。

heap 大小0x1000     封库时使用了-o3编译选项,函数代码如下

int brinv(double a[], int n)
{ int *is,*js,i,j,k,l,u,v;
double d,p;
is=malloc(n*sizeof(int));// n的大小为6
js=malloc(n*sizeof(int));// n的大小为6
/***********
求逆运算代码
 *************/   

free(is); free(js);
return(1);
}
Shine:

请问是做了几块板子有这个问题?请量一下oscin, reset和power supply是否都正确以确保DSP能稳定的工作。

程序是在片内还是在片外运行的?

li shui:

回复 Shine:

谢谢回复,一共做了5块板子,只有一块板子有这种故障,软件都是在片内RAM运行的,请问您说的这几个信号主要检测什么内容,异常情况的特点是什么,我是做软件的不太懂,谢谢了

li shui:

回复 Shine:

谢谢解答,回头测测这几个信号,我想问问如果这些信号不满足手册要求,会导致软件运行时空间释放异常,导致堆溢出吗,谢谢了

Shine:

回复 li shui:

因为你是五块板子有1块出现问题,更倾向于硬件的不稳定引起代码问题。

li shui:

回复 Shine:

谢谢,但是也没法理解在出问题的板子上,为什么软件稍加修改重新编译后又不出故障了

赞(0)
未经允许不得转载:TI中文支持网 » C6727 堆溢出问题
分享到: 更多 (0)