Код:
Код
#include <stdio.h>
#include <stdlib.h>
void f_write(char *str,int arr[],int N);
void f_read(char *str,int arr[],int N);
int z1[1000],Nfloat;
void main()
{ int i;
char str1[]="C:\\Ti\\myprojects\\Project\\Project\\zoom_inst1";
char str2[]="C:\\Ti\\myprojects\\Project\\Project\\zoom_inst1_out";
for (i=0;i<1000;i++)
z1[i]=0;
puts("start");
f_read(str1,z1,1000);
f_write(str2,z1,1000);
puts("end");
}
void f_read(char *str,int arr[],int N )
{
FILE *fr;
fr = fopen(str,"rb");
fseek(fr, 0, 0);
fread(arr,1,N,fr);
fclose(fr);
}
void f_write(char *str,int arr[],int N)
{
FILE *fw;
fw = fopen(str, "wb");
fwrite(arr,1,N,fw);
fclose(fw);
}
#include <stdlib.h>
void f_write(char *str,int arr[],int N);
void f_read(char *str,int arr[],int N);
int z1[1000],Nfloat;
void main()
{ int i;
char str1[]="C:\\Ti\\myprojects\\Project\\Project\\zoom_inst1";
char str2[]="C:\\Ti\\myprojects\\Project\\Project\\zoom_inst1_out";
for (i=0;i<1000;i++)
z1[i]=0;
puts("start");
f_read(str1,z1,1000);
f_write(str2,z1,1000);
puts("end");
}
void f_read(char *str,int arr[],int N )
{
FILE *fr;
fr = fopen(str,"rb");
fseek(fr, 0, 0);
fread(arr,1,N,fr);
fclose(fr);
}
void f_write(char *str,int arr[],int N)
{
FILE *fw;
fw = fopen(str, "wb");
fwrite(arr,1,N,fw);
fclose(fw);
}
Бинарный файл содержит 5800 последовательных байт (2900 integres), в коде проведенном выше - читаю первых 1000 байт а массив z1 (массив заявлен как integer).
На данный момент работаю на симуятор C5402 (т.е. без подключенного борта).
В таком состоянии (чтение 1000 байт) - вроде работает нормально, данные читаются в массив z1.
Задача - прочесть все 5800 байт из исходного файла. Проблема возникает когда увеличиваю размеры массива и чтения файла - скажем говорю прочитать 2000 байт (измению 1000 на 2000 везде где надо в сорсе) - тут программа виснет где-то в процессе чтения файла. Не пойму что происходит...

Конфигурация памяти очень проста:
Код
MEMORY
{
PAGE 0: EPROG: origin = 0x1200, 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
}
{
PAGE 0: EPROG: origin = 0x1200, 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
}
думал проблема может быть в памяти - но вроде ее достаточно в конфигурации.
Подскажите что может быть ?

Спасибо