单片机意外死机,意外复位,程序跑飞

本文探讨了导致单片机出现意外死机、复位及程序跑飞的三大常见原因:数组越界、电源不稳定与Stack栈溢出,并详细介绍了Stack的作用及如何在IAR中设置足够的栈空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单片机意外死机,意外复位,程序跑飞。原因有以下几种。

一、数组越界。

       特别是使用指针操作的,如果有越界的情况,后果将很严重。

二、电源不稳定。

       可以用示波器监测检查

三、Stack 栈溢出

Stack是为了程序运行过程中临时保存所需数据而在内存里分配的一小块空间。保存的数据类型一般情况下包括以下几种:

1. 函数中声明的局部变量以及参数

2. 函数返回值

3. 中断时CPU 寄存器值

4. 函数运行后返回的地址

因此,编译器设置里,一定要预留足够大的栈空间。

IAR里面的设置方法:

参考:https://www.cnblogs.com/harleygwak1206/p/5856562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值