Inc_brza 发表于 2017-12-20 10:41:15

Leeru 发表于 2017-12-20 10:21
版主您好~
我這邊有試著把變數當作全域變數並且執行後是正常的
可是當我嘗試把變數宣告成float全域變數後


详细我不知道,全部定义成float内存消耗会很严重,自行理解"heap/stack"的概念,
FFT也不需要一个2KByte的float类型的数组吧?请自行参考其他的FFT的代码吧!

MrJiu 发表于 2017-12-20 14:46:48

Leeru 发表于 2017-12-20 10:21
版主您好~
我這邊有試著把變數當作全域變數並且執行後是正常的
可是當我嘗試把變數宣告成float全域變數後


首先可以去了解一下什么是堆,栈,全局变量,局域变量这几个关系。。。
至于你这个问题,一般编译器设置的栈的容量在多少来着,搞忘记啦,而且是可以更改。。。栈就是用来保存局域变量的,当然了也包括压栈和出栈。。。你这
uint32_t Input_f32;
uint32_t Output_f32 ;
两个局域变量太大啦,很显然栈溢出,如果在线调试的话,会看到直接进入HardFault_Handler中断,然后死循环。。。

maxtch 发表于 2017-12-20 20:09:36

光这两个数组申明就吃掉了 12kB 的内存……你用的什么芯片,内存还够吗?有没有出现堆栈溢出?
页: 1 [2]
查看完整版本: 【请教】对数组赋值导致代码运行异常