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.

why DSP_fft16x16t let my program run to dead?

Hi, my project  is using C6416T, the FFT function DSP_fft16x16t  fr. dsp64x.lib is called by my program , when I use optimization level -o2, the my dsp program will run to dead. But when I drop the optimization level to O0 or DSP_fft16x16t  isn't called,my  dsp program will run well. Can anybody help me?

  • Hi Rolan,

    From the information you have given, it could be an optimization problem in the compiler;  I could not find a problem specific to DSP_fft16x16t.

    What version of the C6000 compiler are you using?

    What compiler switches are you using?

    Regards,
    Harry

  • Hi Haryy,

    Thank you for your reply! I use the CCS 3.3 with the newest update 3.3.8.1, the optimization level is -o2(some files related to EMIFA access is O1),speed more cratical,no program level optimisation,others are default. The file using DSP_FFT16X16T is set to -O0. By the way, DSP/BIOS is used, only for an hardware interrupt,no tasks,no swi. The program calls the DSP_FFT16X16T  function every 2 ms, when use -o2, sometimes the fft result is wrong. I wonder if there're anything about L1 cache, EDMA or stack?

    Regards,

    Rolan

     

  • Hi Rolan,

    Your last message indicates this is more involved than the first. Before we go further, please supply some additional information. Start CCS, select
    Help -> About... , and you should see a window similar to the following.

    Please send the Version (the version in this example is 3.3.81.6), BIOS version (5.33.01), and Code Generation Tools version (6.0.19) you are using.

    Thanks,
    Harry

  • Hi,Harry,thank you  for your help. I've found the cause. I measured the DSP CVDD (1.1 volts, nominal) today, and found  the p-p value of the intererence with CVDD is about 270mv, I connected 2 shunt capacitors to the CVDD, the p-p value of the intererence dropped to 150mv, then  the program ran very well, any kind of opt level is ok.

    Why did DSP_fft16x16t make the program run to death before? I think  DSP_fft16x16t  is a computation-dense functios, running DSP_fft16x16t  needs more current, especially the codes optimised with high level  , which makes the bad DSP CVDD supply 's voltage unstable and the program flied.

    Best regards,

    Rolan