I am creating two Circ Buffers delay buffers with assigning to B2 and B3 registers (on ADSP-21479-EZ-KIT). The bufers sizes are defined below with D1 and D2 defines.
.section /dm seg_sdram;
.var w1[D1+1]; /* delay-1 buffer */
.var w2[D2+1]; /* delay-2 buffer */
Stepping in the debug window, i see they I2 and I2, B2, B3 are zeroed out and not retained where in the delay function these are supposed to be used to go to the Dth-tap on the delay line.
I even add the mode1 CBUFEN.
Why is this basic function not working for me, i.e. once set B2 (and I2 gets set with it), I should be able to use I2 in any asm file and get to use the delay buffer as circbuf. ?
bit set mode1 CBUFEN;
B2 = w1; L2 = @w1; /* delay-line buffer pointer and length */
B3 = w2; L3 = @w2; /* delay-line buffer pointer and length *
m2 = 1; m3 = 1;
LCNTR = L2; /* clear delay line buffer to zero */
DO clrDline_1 UNTIL LCE;
clrDline_1: dm(i2, m2) = 0;
LCNTR = L3; /* clear delay line buffer to zero */
DO clrDline_2 UNTIL LCE;
clrDline_2: dm(i3, m3) = 0;
// dm(i2var) = I2;
// dm(i3var) = I3;
Calling the Init_Delay_Buffers() from main.c
// Only do this while debugging, loader kernel will do this in real application...
initPLL_SDRAM(); //Initialize the PLL and SDRAM controller
// This function will configure the AD1939 codec on the 21479 EZ-KIT
// Turn on SPORT0 TX and SPORT1 RX for Multichannel Operation
// Set up small delay buffer
// Unmask SPORT1 RX ISR Interrupt