TDA4VEN-Q1: FFTLIB重复调用输出结果异常

Part Number: TDA4VEN-Q1
Other Parts Discussed in Thread: FFTLIB

你好

      我在开发dsp c7x时碰到连续调用FFTLIB_fft1dBatched_i16sc_c16sc_o16sc_kernel函数时,第一次fft计算结果正常,第二次fft计算结果异常,单独进行某一次的fft(只使用第一次fftt或者只使用第二次fft)结果均正确。第一次fft输入数组为128通道1024个采样点,第二次输入数组为512通道128个采样点,代码如下:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
__attribute__((section(".l2mem"), aligned(64))) int16_t l2_user_array0[128][2048]; // 512k
__attribute__((section(".l2mem"), aligned(64))) int16_t l2_user_array1[128][2048]; // 512k
__attribute__((section(".l2mem"), aligned(64))) int16_t l2_user_array2[512][256]; // 256k
__attribute__((section(".l2mem"), aligned(64))) int16_t l2_user_array3[512][256]; // 256k
void func()
{
battch_fft1d_info_type l_battch_fft1d_info = {0};
l_battch_fft1d_info.num_shifts = 5;
l_battch_fft1d_info.channel = 128;
l_battch_fft1d_info.num_points = 1024;
l_battch_fft1d_info.data_type = FFTLIB_INT16;
bsp_dsppro_battch_fft1d((int16_t *)l2_user_array0, (int16_t *)l2_user_array1, &l_battch_fft1d_info);
l_battch_fft1d_info.num_shifts = 3;
l_battch_fft1d_info.channel = 512;
l_battch_fft1d_info.num_points = 128;
l_battch_fft1d_info.data_type = FFTLIB_INT16;
bsp_dsppro_battch_fft1d((int16_t *)l2_user_array2, (int16_t *)l2_user_array3, &l_battch_fft1d_info);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

是否是我遗漏了什么步骤,导致连续调用不能正常工作,若我想连续计算fft,该如何修改代码?希望ti工程师能帮忙指出问题。

x 出现错误。请重试或与管理员联系。