STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
如题:STM32芯片,如果堆溢出、栈溢出,都会进入硬件错误中断中吗?
http://my.csdn.net/uploads/201205/19/1337414322_6402.gif
如上图,STACK是向下伸展,如果STACK向下越界了,那么这时候,sp的指针会指向哪里? 指向用户ram区,还是HEAP区,或者哪里?
HEAP向上伸展,越界后,越界部分的内存是会操作哪里?会对stack区产生影响吗?
RAM去越界到FLASH区的话,是不是会进入硬件错误中断?
本人菜鸟,求人指教!!
RE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
堆栈溢出都会产生陷阱中断。回复:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
回复第 2 楼 于2014-07-04 20:23:55发表:堆栈溢出都会产生陷阱中断。
那么请教下,可以不同过仿真,直接知道stack已用空间、heap的已用空间吗?
stack可以看指针,但不知道软件如何可以将指针赋值到变量。keil仿真时,如何查看stack、heap的使用空间情况?
如通过串口将监控指针位置上传,进行监控。项目使用,机器一跑,仿真就断线了,无法通过仿真看。
求指导,谢谢!!
RE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
溢出就直接进入中断了RE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
栈区的使用在编译时就确定了,除非你使用汇编强制操作栈寄存器,否则只要编译通过就没有问题。堆区需要你自己维护,申请失败时不使用就行,如果使用了,使用的就是一个错误地址,可能就会产生hard fault中断。RE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
堆栈溢出时程序会跳到hard fault异常中断里,程序运行时出现堆栈溢出,仿真时可以明显看出子程序返回时跳到毫不相干的子程序中去了RE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
我记得权威指南里面有一章指专门讲异常问题的。楼主可以自己去看一下:DRE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
hard fault之后就进中断了啊。RE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
找了半天资料也没找到解决的办法,坐等大家献言献策RE:STM32堆溢出、栈溢出,导致出现异常的情况相同吗?
循环不出来的话, 输出的参数就有问题
页:
[1]
2