• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32的堆溢出会有什么后果

drepa 2017-12-04 浏览量:1053

如题,我们知道STM32的栈溢出的话,有时候程序就会找不到main函数的指针,也就是不会执行用户程序,那如果是堆溢出呢?程序也会跑飞吗?是会触发硬件紧急错误中断HardFalutHandler(),还是会像PC电脑那样,指向了非法内存区域导致系统崩溃?​

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • STM32的机制就是当指向了非法内存区域了就会进HardFalutHandler()中断。所以最后的结果就是进HardFalutHandler()。
    楼主可以看看M3的权威指南,有说明的
    • 发布于 2017-12-04
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了 :配套的端子:ST730624-3(0.85-1.25) 回复

其他答案 数量:5
  • 超出了合理的存储地址范围,应该会报错硬件错误中断,进入这个中断。
    • 发布于2017-12-05
    • 举报
    • 评论 0
    • 2
    • 0

  • stm32里栈是向下生长,堆是向上生长。堆溢出会覆盖栈数据吧,引起的结果也是跟栈溢出差不多。这是我的猜测,不敢下定论。
    • 发布于2017-12-04
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :请和客户核对厂牌 KEYSTONE厂牌的2479是电池盒 HEYCO厂牌的2479是套管 看是在哪一环节造成错料 回复

  • 一样的,只要堆或者栈的空间超出了指定范围都会出错
    • 发布于2017-12-04
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :不带AS1的是ESR=4 欧姆 带AS1的是ESR=4 .5欧姆 回复

  •        如楼上所说,堆溢出会指向未知的内存区域,造成的结果无法预料,硬件错误中断是其中一种。当然最常见的当然是程序直接跑飞。

    • 发布于2017-12-08
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :是同一个 回复

相关问题

问题达人换一批

STM32的堆溢出会有什么后果