I want to compute 1024 point real radix-2 FFT on ADSP-21375 EZ-kit Lite.
I found in VisualDSP++ 5.0 Run-Time Library Manual for SHARC Processors the example how to use this library, but it is for C code. However, the routines are written in ASM (rfft_simd.asm).
I will not use any C code in my project.
Is there any example on how to use "rfft_simd.asm" from ASM main file?
The problem is, that I do not know which pointers are used for input and output.
E.g. rfft_1024 is calling _cfft512_simd and _cfft512_simd is calling ___bitrev_simd.
In "bitrev_simd.asm" is clearly written which register it is using:
* Calling Parameters
* R0 --> Input buffer
* R1 --> Output buffer
* R2 --> Length of buffer
* Return Registers
* R0 --> Modify value
* R7 --> Log2(N)
* Altered Registers
* R2, R4, R7, R8, R12,
* I4, M4
* I3, M3
* I2, M2
* I5 (used by function, preserved on entry)
But in rfft_1024 and _cfft512_simd it is not written and I am a bit confused.
I will need to compute 1024 point real radix-2 FFT lot of the times for many inputs from another sources in a complex main program.
Therefore, I am planing to edit "rfft_simd.asm", to add _cfft512_simd and ___bitrev_simd inside one function and remove non necessary things such as:
#if ( RFFT == 16 )
#define LENGTH 16
#define NAME rfft16_simd
#define TWIDDLE ___tc16
#define CFFT_HALF _cfft8_simd
#elif ( RFFT == 32 )
#define LENGTH 32
#define NAME rfft32_simd
#define TWIDDLE ___tc32
#define CFFT_HALF _cfft16_simd
#elif ( RFFT == 64 )
It could be great if someone can add here a complete project in ASM, that will compute 1024 point real radix-2 FFT on SHARC (21375 e.g. with using "rfft_simd.asm".