主题中讨论的其他部件:FFTLIB
工具/软件:
TI 团队大家好、
我在 C7x 上同时使用 FFTLIB 和 DSPLIB 内核、并注意到如何处理参数块 (`pBlock`) 有差异:
*在 DSPLIB FIR 内核(例如`D` SPLIB_fir_ci.cpp `)中、` InitArgs `struct 包含` pBlock `、并动态分配其存储器(通过` GetSize ()`m+` alloc)。 这可以正常工作、内核可以正常运行。
*然而,在 FFTLIB 中,示例总是在`. pinit `部分声明` pBlock`,例如:
```c
pragma DATA_SECTION (FFTLIB_fft1d_i32f_c32fc_o32fc_pBlock、“.pinit")“)
Uint8_t FFTLIB_fft1d_i32f_c32fc_o32fc_pBlock[FFTLIB_FFT1D_I32F_C32FC_O32FC_PBLOCK_size];
```μ s
如果我尝试使用`malloc`动态分配`pBlock`(128B 对齐、相同的 L2SRAM 区域)、内核会冻结或崩溃。 只有`.pinit`放置工作。
——
我的问题:
1、`FFTLIB 为何要求将` pBlock `具体放置在`.pinit 中?
2.这是由于硬件流引擎 (SE/SA) 要求还是 FFTLIB 内核实现强制的约定造成的吗?
3.是否有任何安全的方法可以使用 malloc 分配的缓冲区管理多个 FFT 实例(每个实例都有自己的 pBlock)、或者`.pinit`是必需的?
了解这一差异将有助于我们设计存储器分配策略(我们计划管理多个 FFT/IFFT 通道、可能通过在执行前将本地 pBlocks 复制到共享全局`.pinit `块中)。
此致、
Hendry Newman

