I'm using DSPF_sp_ifftSPxSP (from DSPLIB Ver 3.1.0.0) on the C6670LE EVM, with BIOS version 6.33.02.31. I put together a simple test program that takes the FFT of a signal and then the IFFT to validate my code. However, everything works fine (input to FFT approximately equals output of IFFT) except when the IFFT size is 131072. The documentation for DSPF_sp_ifftSPxSP says the max IFFT size is 131072. The IFFT operation overwrites data outside of the input and output buffers. For example, in the following code, ptrInputFloat=0x80000020, and ptrOutputFloat= 0x80400020. When DSPF_sp_ifftSPxSP is called with fftSize=131072, memory locations 0x80000000-0x8000001F get overwritten, destroying other data.
DSPF_sp_fftSPxSP(fftSize, ptrInputFloat, w_fwd_float, ptrOutputFloat,brev, radixFwd, 0, fftSize);
DSPF_sp_ifftSPxSP(fftSize, ptrOutputFloat, w_rev_float, ptrInputFloat,brev, radixRev, 0, fftSize);
Has anyone run DSPF_sp_ifftSPxSP using an IFFT size of 131072? Any ideas what I might be doing wrong? fftSize is declared as uint32_t and I have checked the array sizes for all buffers.
Thanks.
KTM