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.
是不是SYSCLKOUT? 即CPU 时钟数? 我的一个FFT程序如下
rfft_adc.Tail = &rfft.OutBuf; // Link the RFFT_ADC_F32_STRUCT to
// RFFT_F32_STRUCT. Tail pointer of
// RFFT_ADC_F32_STRUCT is passed to
// the OutBuf pointer of RFFT_F32_STRUCT
rfft.FFTSize = nRFFT_SIZE;
rfft.FFTStages = nRFFT_STAGES;
rfft_adc.InBuf = Signal_In; // Input buffer
//rfft.InBuf = Signal_In; // Input buffer
rfft.OutBuf = &RFFT_Out_Buf[0]; // Output buffer
rfft.CosSinBuf = &RFFT_Coef_Buf[0]; // Twiddle factor buffer
rfft.MagBuf = Signal_Mag; // Magnitude buffer
rfft.PhaseBuf = Signal_Phase;
RFFT_f32_sincostable(&rfft); // Calculate twiddle factor
RFFT_adc_f32(&rfft_adc); // Calculate real FFT with 12-bit ADC input
这段程序的执行时间 TI 给出的benchmark是 29466 cycle count, 我的系统是28335, 运行时钟是150M, RAM 使用片外RAM,测量下来所需时间是2508380*6.67ns = 16.7ms, 为什么会相差这么大? 我想了想,除了使用 片外RAM外,差别在哪里? 怎么会这样慢? 我在程序中使用了c28x fast 库的。
片外RAM使用XD0~XD15 连 ISSI 公司的 256 k 16 BIT RAM,测试是使用28335自身带的CPUTIMER0,进去时读一个CPUTIMER0的值,出来时再读一次CPUTIMER0的值,两个值相减,就认为是执行FFT所要的时间,同时,也用示波器观察28335 I/O翻转,两种方法的结果是一致的。
16BIT数据总线连接到ISSI公司的256K RAM
FFT执行时间测量:1,用CPUTIMER0计数,进出FFT程序相减, 2,示波器观察I/O翻转,两者基本一致。
16BIT数据总线连接到ISSI公司的256K RAM
FFT执行时间测量:1,用CPUTIMER0计数,进出FFT程序相减, 2,示波器观察I/O翻转,两者基本一致。