TI中文支持网
TI专业的中文技术问题搜集分享网站

关于FIR_F32地址模式的问题

C28x Floating Point Unit DSP Labrary 中的FIR_F32函数的源码我大致读过,其使用的应该是AMODE=0的模式,也就是说cicualr buffer最大是256words

spru430f.pdf 97页 5.6.3

“buffer size is determined by the 8 LSBs of AR1 or AR1[7:0]. Specifically, the buffer
size is AR1[7:0] +1. When AR1[7:0] is 255, then the buffer size is at its maximum size of 256 words.”

如果按32位模式,地址每次加2,那么FIR长度是否被限制在127?

但是在C28x Floating Point Unit DSP Labrary 文档中 FIR_F32的Benchmark Information:中有511和255的测试结果,是我理解错了么

10#:

每个buffer最大是256words,FIR_F32使用了不止一个,最多应该在4个。

C28x Floating Point Unit DSP Labrary 中的FIR_F32函数的源码我大致读过,其使用的应该是AMODE=0的模式,也就是说cicualr buffer最大是256words

spru430f.pdf 97页 5.6.3

“buffer size is determined by the 8 LSBs of AR1 or AR1[7:0]. Specifically, the buffer
size is AR1[7:0] +1. When AR1[7:0] is 255, then the buffer size is at its maximum size of 256 words.”

如果按32位模式,地址每次加2,那么FIR长度是否被限制在127?

但是在C28x Floating Point Unit DSP Labrary 文档中 FIR_F32的Benchmark Information:中有511和255的测试结果,是我理解错了么

b a4:

回复 10#:

无论从代码怎么看也无法得出这个结论…

缓冲区是函数的参数传入的,哪来的4个

但是思路确实可行,512的fir需要把dbuffer_ptr和coeff_ptr砍成4个buf和4个coeff数组,然后调用4次FIR_F32,.. 每次调用的输入是上一个调用被丢弃的那个数据,注意不是上一个的输出

问题的关键在于为什么要用这么麻烦的方式而不使用AMODE=1,AMODE=1的话,可以支持到16位的地址,而且delaybuffer无需对齐

我用AMODE=1的方式做出FIR,已经使用了很久,没有出现过问题,但是这次看到TI的官方代码,不免有些疑问了,我想请教一下,到底使用哪种方式更合理?

万分感谢!

赞(0)
未经允许不得转载:TI中文支持网 » 关于FIR_F32地址模式的问题
分享到: 更多 (0)