Thread 中讨论的其他器件:C2000WARE、 controlSUITE
工具/软件:Code Composer Studio
我正在尝试在我正在使用的 F28m36x 电路板上实现 FFT。 我已将2837x_vcu0_rfft_512示例用作模板。 我认为电路板上的 vcu0单元配置正确。 编译后、我查看了存储器、并看到 vcu0_CFFT_utils.asm 和 vcu0_CFFT_256.asm 中定义的函数被写入存储器。 我从 rfft_512_data.asm 中获取了示例输入、并将 FFT 输入指针指向数据、然后运行代码以查看来自 FFT 的输出是否与预期输出相匹配。 当我查看反汇编时、我看到函数标签被加载到工作寄存器中、但我在反汇编窗口中看不到函数的汇编代码。 我继续单步执行代码、看到工作缓冲区中填充了新数据、但在完成代码后、我查看了输入缓冲区的内容、数据没有发生变化。 它认为、如果点数是偶数、汇编函数应该写回输入缓冲器、在这种情况下是偶数。 我有点被骗了
cfft16_t FFT = rfft16_512P_DEFAULTS;
ComplexShort FFT_Work_buffer[256];
void rfft16 (cfft16_t * FFT_HND);
void main (void){
FFT.ipcbptr =(int *) RFFT16_512p_in_data + 0;
FFT.workptr =(int *) FFT_work_buffer + 0;
fft.init(&fft);
rfft16(&FFT);
int k;
int s、t、v;
对于(k = 0;<DATA_LENGTH; k++){ 为0.8MHz
if (abs (RFFT16_512p_out_data[k]- RFFT16_512p_in_data[k])> Epsilon){
S = RFFT16_512p_OUT_DATA[k];
t = RFFT16_512p_in_data[k];
V =绝对(s-t);
FAIL++;
}
否则{
pass ++;
}
}
在迭代 for 循环后、我有512个失败。 FFT 结构和函数包含在 DSP 库 v2_10_00_00/include/vcu0下的 vc0_FFT.h/vcu_types.h 文件中
