原创 如何检测STM32的堆栈溢出

2017-7-17 14:07 3509 17 17 分类: 处理器与DSP

STM32单片机的堆栈自顶向下,从符号__initial_sp开始,到符号STACK结束。

如果函数内部定义了大数组,或者参数传递过深,就会造成堆栈溢出,且它无法被编译器检测出来。


有一种运行时检测堆栈的方法:



  1. 使用readelf工具,读出alf文件的符号表;

  2. 找到临近符号表的最后一个数据结构,为其增加一组变量,赋特定值;

  3. 在系统定时器里,持续检测这些值是否被改变。


文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /5 下一条