AnsweredAssumed Answered

STM32F4 - FFT : Why global variables

Question asked by PH on Oct 16, 2014
Latest reply on Dec 5, 2014 by pang.jerry
Hi,
I'm using CMSIS DSP Libraries with a microcontroller STM32F4 to compute FFT. Here is my function code to compute the FFT:
void fftProcess(float32_t *parSignalInput_f32, float32_t *parfftOutput_f32)
{
    uint16_t i = 0, n = 0;
        
    for (i=0; i<2048; i++)
    {
    hamming_signal_real_img_f32[2*i] =  0;//*(parSignalInput_f32+i);
    hamming_signal_real_img_f32[2*i+1] =  0;
    }
    
    //
    // Calculate RFFT on samples
    //
    arm_cfft_f32(&arm_cfft_sR_f32_len2048, hamming_signal_real_img_f32, INVERT_FFT, BIT_ORDER_FFT);
   
    //
    // Calculate complex power of FFT results
    //
    arm_cmplx_mag_f32(hamming_signal_real_img_f32, g_fFFTResult_f32, NUM_SAMPLES);
    
    
    for(i=0; i< (NUM_SAMPLES/2); i++)
    {
        *(parfftOutput_f32 + i) = g_fFFTResult_f32[i];
    }
    
}
I'm wondering why the next variables: parfftOutput_f32, parSignalInput_f32, g_fFFTResult_f32, hamming_signal_real_img_f32 must be defined as global variables.
If there are not, my program goes in the hardfault handler.
Thanks for your answer,
PH

Outcomes