Hej
Mój problem wygdąda tak ,jakbym adresował i0 w DAG1 on sobie coś innego
Tu fragment kodu, niżej opis problemu:
SCRAMBLER:
/***** Pierwsza część *******/
i4 = Input_Real;
i0 = FFT_IO_Real;
m4 = 1;
m0 = Mod_Value; // Mod_Value = 2 ^ 14-log2 (N)
l4 = 0;
l0 = 0;
CNTR = N;
ENA BIT_REV;
DO SR_Loop UNTIL CE;
ay1 = DM(i4,m4); // Reversing Real part
SR_Loop: DM(i0,m0) = ay1;
DIS BIT_REV;
/***** druga część *******/
i4 = Input_Image;
i0 = FFT_IO_Image;
m4 = 1;
m0 = Mod_Value;
l4 = 0;
l0 = 0;
CNTR = N;
ENA BIT_REV;
DO SI_Loop UNTIL CE;
ay1 = DM(i4,m4); //Reersing image part
SI_Loop: DM(i0,m0) = ay1;
DIS BIT_REV;
rts;
To jest funkcja haszująca przed moim FFT,
I , problem w tym ,że pierwsza część kodu jest wykonywana poprawnie,
dane z tablicy "Input_Real" są poprawnie transferowane do "FFT_IO_Real"
Zaś w drugiej częsci on przerzuca dane do "Input_Real" zamiast do "FFT_IO_Image"
haszuje je poprawnie, ale czemu nie tam gdzie trzeba ???, przecież właściwie obie części są takie same.
Co trzeba więcej zrobić żeby wskaźnik i0 adresował się poprawnie ???
Deklaracja tablic wygląda następująco:
.SECTION/DM sound_data;
.VAR/CIRC Input_Real[N];
.VAR/CIRC Input_Image[N];
.VAR/CIRC FFT_IO_Real[N];
.VAR/CIRC FFT_IO_Image[N];
gdzie N=64;
I za cholere nie mogę dojść co jest nie tak.
Jeśli ktoś by miał chwilę żeby rzucić na to okiem będę bardzo wdzięczny.
mogę wysłać cały kod niezbędny do zobacznie błędu
( Jest naprawde bardzo krótki i jest na VisualDSP, i sesja 2181 simulation)
Mój problem wygdąda tak ,jakbym adresował i0 w DAG1 on sobie coś innego
Tu fragment kodu, niżej opis problemu:
SCRAMBLER:
/***** Pierwsza część *******/
i4 = Input_Real;
i0 = FFT_IO_Real;
m4 = 1;
m0 = Mod_Value; // Mod_Value = 2 ^ 14-log2 (N)
l4 = 0;
l0 = 0;
CNTR = N;
ENA BIT_REV;
DO SR_Loop UNTIL CE;
ay1 = DM(i4,m4); // Reversing Real part
SR_Loop: DM(i0,m0) = ay1;
DIS BIT_REV;
/***** druga część *******/
i4 = Input_Image;
i0 = FFT_IO_Image;
m4 = 1;
m0 = Mod_Value;
l4 = 0;
l0 = 0;
CNTR = N;
ENA BIT_REV;
DO SI_Loop UNTIL CE;
ay1 = DM(i4,m4); //Reersing image part
SI_Loop: DM(i0,m0) = ay1;
DIS BIT_REV;
rts;
To jest funkcja haszująca przed moim FFT,
I , problem w tym ,że pierwsza część kodu jest wykonywana poprawnie,
dane z tablicy "Input_Real" są poprawnie transferowane do "FFT_IO_Real"
Zaś w drugiej częsci on przerzuca dane do "Input_Real" zamiast do "FFT_IO_Image"
haszuje je poprawnie, ale czemu nie tam gdzie trzeba ???, przecież właściwie obie części są takie same.
Co trzeba więcej zrobić żeby wskaźnik i0 adresował się poprawnie ???
Deklaracja tablic wygląda następująco:
.SECTION/DM sound_data;
.VAR/CIRC Input_Real[N];
.VAR/CIRC Input_Image[N];
.VAR/CIRC FFT_IO_Real[N];
.VAR/CIRC FFT_IO_Image[N];
gdzie N=64;
I za cholere nie mogę dojść co jest nie tak.
Jeśli ktoś by miał chwilę żeby rzucić na to okiem będę bardzo wdzięczny.
mogę wysłać cały kod niezbędny do zobacznie błędu
( Jest naprawde bardzo krótki i jest na VisualDSP, i sesja 2181 simulation)