IAR 编译器堆栈溢出问题查找
概述:
在编写程序时往往因为代码不规范,而造成堆栈溢出的问题,
这种问题困扰了不少编程新人,希望此文档能对你处理堆栈溢出时
有所帮助
方法:
HardFault_Handler 函数默认程序在 startup_LPC177*_8*.s 里是
HardFault_Handler
B HardFault_Handler
PUBWEAK MemManage_Handler
SECTION .text:CODE:REORDER(1)
//默认程序是个死循环
只需改成:
HardFault_Handler
BX lr
即可,在 BX lr 处设个断点,当产生堆栈溢出时,断点会中断程序,
再单步运行一下程序即是产生溢出中断的位置,可以在此处找到溢
出的变量;stm32 的处理方法相似,在此不再累述
评论4