This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/LAUNCHXL2-RM57L: PROBLEMS WITH CFFT_RADIX4_F32

Part Number: LAUNCHXL2-RM57L
Other Parts Discussed in Thread: HALCOGEN

Tool/software: Code Composer Studio

Hello

Currently, i'm programming a Fourier Analysis of a power system voltage. However, when i try to use cfft_radix4_f32 function provided by CMSIS library, it enters in a infinite loop, memory is unaccesible and the cfft_radix4 process is not develop. The febugger process stops in intvect.asm.

I create the cfft struct and used the initialization function according to CMSIS examples. CMSIS library and HalCoGen files hade been correctly linker to project. I tested the project with less complex fuctions. 

Thanks 

  • Hello David,

    I did not see the issue when I run test. Can you re-try your test using my code below:


    arm_status status;
    arm_cfft_radix4_instance_f32 S;
    float32_t maxValue;

    float32_t test[128] = {1.0};

    arm_rfft_instance_f32 rfft_instance;
    arm_rfft_instance_f32* rfft_instance_ptr = (arm_rfft_instance_f32*) &rfft_instance;

    arm_cfft_radix4_instance_f32 cfft_instance;
    arm_cfft_radix4_instance_f32* cfft_instance_ptr = (arm_cfft_radix4_instance_f32*) &cfft_instance;

    arm_rfft_init_f32(rfft_instance_ptr,cfft_instance_ptr,128,0,1);

    float32_t out[256] = { 0.0 };
    arm_rfft_f32(rfft_instance_ptr,test,out);

    status = ARM_MATH_SUCCESS; 


    /* Initialize the CFFT/CIFFT module */
    status = arm_cfft_radix4_init_f32(&S, fftSize, ifftFlag, doBitReverse);

    /* Process the data through the CFFT/CIFFT module */
    arm_cfft_radix4_f32(&S, testInput_f32_10khz);


    /* Process the data through the Complex Magnitude Module for
    calculating the magnitude at each bin */
    arm_cmplx_mag_f32(testInput_f32_10khz, testOutput, fftSize);

    /* Calculates maxValue and returns corresponding BIN value */
    arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);

    if(testIndex != refIndex)
    {
    status = ARM_MATH_TEST_FAILURE;
    }