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

f28335开发中需要定义很多大数组问题

逆变器的智能控制,需要采集很多历史数据,在main函数前面全局定义了很多大数组,例如:float data[2000];等,自定义的数组运算函数是通过指针传递的,例如:void add(float* arr1,float* arr2,float* res);程序在debug调试中,每次执行到自定义的这些函数时就卡住了,step over等按钮就变为灰色。

注:由于全局变量定义的数组较大,曾扩容了.ebss区域的容量,并且rebuild项目是无报错的。仿真使用的是ram的.cmd文件。

Susan Yang:

您可以尝试运行相同的代码,但减小数组大小。例如,将512个整数的数组减少为10个整数。如果这可行(如果C2000芯片继续在调试窗口中正确执行代码),则问题出在内存管理中。

如果在函数中声明这些数组,请在CCS设置中增加堆栈大小。您可能还需要增加.cmd文件中的堆栈大小。如果这些数组是全局数组,请检查cmd文件中的ebss大小。您可以在下面查看链接。它将为您提供有关内存部分的更多信息。

processors.wiki.ti.com/…/C28x_Compiler_-_Understanding_Linking

若还是不行的话,一般有2中选择:

1、如果数据时const类型,可以定义在flash里面;2、外扩SRAM。

,

user6598894:

现在我想随机生成一些数组作为噪声,我添加了#include "time.h"头文件,函数体如下,编译没有报错,debug的时候每次step over到此函数就会退回上一行代码,就是无法执行这个函数,这是为什么呢?
void creatNoise(float arr[]){int i;srand( time(0) );for(i=0;i<1000;i++){arr[i]=(rand()%1000+1000)/3000.0;}return;
}

赞(0)
未经允许不得转载:TI中文支持网 » f28335开发中需要定义很多大数组问题
分享到: 更多 (0)