arm_cfft_fast_init_f32编译 flash占用达80K.我震惊了
以前一直使用arm_cfft_f32 不需要使用init函数。
因为是使用CY8C4247跑36M. M0内核。
做fft运算,调用ARM 库。
一个运算数组初始化,就消耗80K flash空间。
随后测试其他的 基2 初始化,占用的空间也达到40K.
最后还是使用复数FFT运算,空间5K不到。就是RAM的空间大一点。
最狗血的是CY8C4247 这颗IC 做256点FFT,竟然需要80ms的时间。STM32F103才10ms
哪位有什么好的改进建议。
另外吐槽一下。CYPRESS的编译器真的难用,自动生成的库文件,一堆坑等着你跳,即使你知道自己跳进去了,还不能蹦出来。 M0,加上频率只有36M,感觉慢一些正常,慢8倍就不知道正常不了 做DSP还是用M4比较好 大傻师 发表于 2017-9-22 23:12
M0,加上频率只有36M,感觉慢一些正常,慢8倍就不知道正常不了
正常,,,因为一些运算指令没有,,,要靠其他多个指令组合实现。。。 问题是 CYPRESS的芯片在进行FFT运算,还需要关闭全局中断,不然直接200MS以上。103我都是不关全局中断的。systick都是跑1Khz。。 本帖最后由 大傻师 于 2017-9-25 13:53 编辑
lixin91985 发表于 2017-9-24 19:30
问题是 CYPRESS的芯片在进行FFT运算,还需要关闭全局中断,不然直接200MS以上。103我都是不关全局中断的。s ...
关全局中断80,不关200,粗略算一下的话,200ms里面有60%的时间用在sysclk上了- -
剩下百分之40的时间给你干其他事情- -U确实不太够用。 大傻师 发表于 2017-9-25 13:49
关全局中断80,不关200,粗略算一下的话,200ms里面有60%的时间用在sysclk上了- -
剩下百分之40的时间给 ...
估计是中断 保护现场消耗太多的时间。MCU就去处理中断去了。
应该M3的指令多很多, https://blogspot.tenettech.com/cortex-m0-vs-cortex-m3.html
这里说的性能差距也就是百分之50的样子。
M3跟M0好像指令集是一样的,M4才带点DSP相关的指令集。 本帖最后由 armstrong 于 2017-9-26 08:28 编辑
大傻师 发表于 2017-9-25 18:49
https://blogspot.tenettech.com/cortex-m0-vs-cortex-m3.html
这里说的性能差距也就是百分之50的样子。
M3 ...
M0的指令集是M3的小子集;而且有些同样的指令,其功能还会被阉割。自己去查资料。 目前已经优化到10MS.CYPRESS的程序编写完全靠猜。
主时钟在一个不起眼的地方被2分频。
目前还有ADC+DMA已经WDT的指定时间延时没有搞定。有成功经验的指导一下。。
官方的程序 简直就是一个垃圾。
页:
[1]