Начал писать код проэкта (первый свой проэкт под DSP и С5402 в частности, посему опыта 0) - проблема конфигурации памяти (или моей безграмотности в использовании памяти процессора).
Есть несколько больших массивов данных определяемых в программе, + массивы стрингов/чаров.
При Build All падает линкер:
can't allocate .stack, size 00000400 (page 1) in IDATA (avail: 000003f6)
И хотя конфигурация памяти в .cmd почти масимальная, мен кажется проблема в черезмерном кол-ве данных, которыми я забиваю всю память, посему ее и нехватает.
Привожу релеваныные кусок кода:
Код
int samples = 2900;
int original_data[2900*4], unpacked_data[2900*4];
float packed_data[2900];
void f_write(char *str, int arr[], int N);
void f_read(char *str, int arr[], int N);
extern void ci_to_matlab();
extern void matlab_to_ci();
void main()
{
int i;
char* read_file[5];
char* write_file[5];
read_file[0] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\zoom_inst1";
read_file[1] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\zoom_inst2";
read_file[2] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\zoom_inst3";
read_file[3] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\zoom_inst4";
read_file[4] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\zoom_inst5";
write_file[0] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\out_inst1";
write_file[1] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\out_inst2";
write_file[2] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\out_inst3";
write_file[3] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\out_inst4";
write_file[4] = "C:\\MATLAB7\\work\\Project\\Weighted filtering\\Operational version\\MATLAB sources\\Data\\out_inst5"
Файл конфигурации памяти:
[quote]
MEMORY
{
PAGE 0: EPROG: origin = 0x80, len = 0x7c00
PAGE 1: IDATA: origin = 0x80, len =0x8000
}
SECTIONS
{
.text: {} > EPROG PAGE 0
.bss: {} > IDATA PAGE 1
.const: {} > IDATA PAGE 1
.switch: {} > IDATA PAGE 1
.sysmem: {} > IDATA PAGE 1
.stack {} > IDATA PAGE 1
}
[/code]
Подозреваю большие массивы (в коде С) забили всю память DATA. Ваше мнение ? Что происходит ?