#1楼主:STM32迷你套件调试函数为什么片子总死机啊?
文章发表于:2008-05-15 04:59
STM32不是有很强的计算能力吗?那做函数处理应该也可以吧,但是只要有两个函数出现就会死掉。必须是那种系列的吗?
#2
文章发表于:2008-05-15 17:16
应该不会呀!我的USART试验很大,只是下载后出现一个堆栈占满了的警告,无法进行试验
#4
文章发表于:2008-05-16 08:33
p=6.23654896*(n-1);
pr[i]=sin(p);pt[i]=-cos(p);
我试了下跑64个点的FFT遇到函数就死掉了啊!
#5
文章发表于:2008-05-16 10:58
请检查你的C编译器的手册,是否支持函数的可重入调用;同时要检查那些三角函数所需的调用条件,如堆栈的使用、RAM空间的使用等问题。
估计你的问题不是内存分配的问题就是函数重复调用。
#7
文章发表于:2008-05-16 13:58
STM32大哥,我的那个问题(运行时显示堆栈已满,超出范围)是什么原因造成的?是STM32F10x的flash大小限制还是我的程序指针指错了位置?
#8
文章发表于:2008-05-16 15:53
运行时显示堆栈已满的问题应该是你程序中使用了太多的堆栈空间,只要多申请一些堆栈空间即可,我在你那个帖子中已经解答了如何扩大堆栈空间。
一般局部变量会临时占用堆栈空间,如果你在函数中使用了很多局部变量,尤其是较大的数组,就很容易迅速地消耗掉堆栈空间;当然函数调用的深度太大也会消耗大量的堆栈空间,但这种情况不常见,除非你的函数有递归调用。
#9
文章发表于:2008-05-16 15:54
堆栈满的问题绝对与Flash的大小无关,一般也和程序指针无关,除非是程序跑飞了。