打印
[STM32F1]

STM32_FFT这个也会内存溢出?

[复制链接]
1373|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
七颗咖啡豆|  楼主 | 2015-4-14 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "math.h"
#define pi 3.14
#define fs 500
#define FIR_N 20
float An[21]= {
-0.001088760105017,                 
-0.002745405423523,                 
0.005553074688913,                 
0.003845842298928,                 
-0.021081289865066,                 
0.007532145808243,                 
0.047873859849196,                 
-0.059289535253658,                 
-0.074633752327147,                 
0.299872616508739,                 
0.585937500000000,                 
0.299872616508739,               
-0.074633752327147,                 
-0.059289535253658,                 
0.047873859849196,                 
0.007532145808243,                 
-0.021081289865066,                 
0.003845842298928,                 
0.005553074688913,                 
-0.002745405423523,                 
-0.001088760105017,
};
float FIR(float) ;
main()
{        
        int i;       
        float a,Filter_data[fs];
        while(1)
        {
                for(i=0;i<fs;i++)
                {
                        a = cos(2*pi*80*i/fs) + cos(2*pi*200*i/fs);
                        Filter_data[i] = FIR(a);
                }       
        }
}
float FIR(float DATA)//FIR滤波函数
{
        static float Xn[FIR_N];
        float Sum;
        int i;
        Sum = 0.0;
       
        for( i=FIR_N ; i>0 ; i-- )
        {
                Xn[i] = Xn[i-1];
        }
         Xn[0] = DATA ;
       
        for (i=0;i<FIR_N;i++)
        {
                Sum = Sum + ( Xn[i]*An[i] );//输入乘累加
        }
        return(Sum);
}


沙发
七颗咖啡豆|  楼主 | 2015-4-14 10:44 | 只看该作者
一个20阶的·滤波,都会跑死啊,标题打错了。
仿真错误:
*** error 65: access violation at 0x1FFFFCBC : no 'write' permission

使用特权

评论回复
板凳
戈卫东| | 2015-4-14 10:51 | 只看该作者
什么程序都可以死。。。。。。

使用特权

评论回复
地板
mmuuss586| | 2015-4-14 21:37 | 只看该作者

超出范围也很正常啊;
不要弄这么多数据了;

使用特权

评论回复
5
我思故我在12345| | 2015-4-14 22:42 | 只看该作者

什么程序都可以死。。。。。。

使用特权

评论回复
6
七颗咖啡豆|  楼主 | 2015-4-15 08:46 | 只看该作者
数组弄小了,还是不行,估计是浮点运算的问题

使用特权

评论回复
7
七颗咖啡豆|  楼主 | 2015-4-24 10:22 | 只看该作者
把fs改为128就行了  ,256也不行
具体卡在return(Sum),返回的值 写不到Filter_data[i]中,进入void HardFault_Handler(void)中断
sizeof(float) 是4     256*4=1K字节  
flash512KB的应该没有问题,是不是堆栈的问题呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

508

帖子

4

粉丝