主题中讨论的其他部件:FFTLIB
工具/软件:
您好团队:
我正在 FFTLIB(来自 AM275-FREERTOS-SDK v11.00.00.16) 内核上实施标准化/通用 FFT 包装器 FFTLIB_fft1d_i32f_c32fc_o32fc 需要使用两个公式 FFTLIB_ifft1d_i32fc_c32fc_o32f 对于要在 C7x 内核上运行的复杂到实际的 IFFT 计算。 我已经遵循了 fftlib/test/fft_c7x/FFTLib_fft1d_i32f_c32fc_o32fc/FFTLib_fft1d_i32f_c32fc_o32fc_d.c 和 fftlib/fft7x/FFTLib_ifft1d_i32fc_i32fc_ 因此、我已根据需要为包装器内的处理缓冲区分配 128 字节对齐。 但我注意到、即使是库外部的缓冲区也需要 128 字节对齐、这似乎是一个微妙的要求。 当我不这样做时、即如果我使用 Simple malloc () 分配外部缓冲区、执行会停止、并且我的目标板 (AM275-EVM) 会冻结并进入不可恢复/错误状态、我需要再次进行下电上电。 请注意、所有这些外部内部缓冲区都将分配给堆。 我尝试重现此问题、并在这里随附的 4 个独立 CCS 工程中尝试了几种方法来解决此问题 .zip 文件:
| # | CCS 工程 | 实现详细信息 | 观察 | 含义 |
| 1. | TI-FFT | malloc () 用于外部缓冲区、未对齐、使用的缓冲区副本最少 | 执行期间电路板冻结 | 理想方式 |
| 2. | TI-FFT-expT1 | 没有 malloc () 用法,所有外部缓冲区和库进程缓冲区都是 12 字节对齐的 | 成功执行 | 期望太不切实际 |
| 3. | TI-FFT-expt2 | 与 1 相同、只是包装器使用的缓冲器还多了几个 | 执行期间电路板冻结 | 如果增加了缓冲器、则不可取 |
| 4. | TI-FFT-expt3 | 与 3 相同、只是额外的缓冲区分配是根据操作进行管理的 | 执行期间电路板冻结 | 仍然可以接受 |
很高兴听到我所面临的关于这个问题的专家建议、并期待了解为什么看到这一观察结果以及问题的可能解决方案。
PS:项目包含用于构建测试应用程序的相关内核副本。 可能需要调整依赖项、才能成功构建。
此致、
Sreeekanth