单片机程序死机跑飞原因分析

时间:2023-03-08作者:佚名
单片机程序死机,跑飞了可以从以下几个方面查找原因:
1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象
2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。
3. 地址溢出,常见错误为指针操作错误。我要着重说的是数组下标使用循环函数中循环变量,如果循环变量没控制好则会出现数组下标越界,意外修改系统的寄存器造成死机,这种情况下如果死机说明运气好,否则后面不知道发生什么头疼的事。
4. 无条件的死循环;比如使用while(x);等待电平变化,正常情况下x都会变成0,就怕万一,因此最好加上时间限制;
5. 看门狗没有关闭。有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位,造成死机,这个要看芯片手册,最好在程序复位后首先应该显式清除看门狗再关闭看门狗;
6. 堆栈溢出。最难查找的问题,对于容量小的单片机,尽量减少函数调用层级,减少局部变量,从而减少压栈的时候所需的空间。当你把以上几条都试过不能解决问题,试一试把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改成全局变量,试一试说不定就可以了。

相关阅读

电工经验电路——交流接触器校验电路,建议收藏

交流接触器校验电路 交流接触器 电路图: 交流接触器校验电路如图所示 交流接触器校验电路 工作原理: 通断试验: 用可靠的导线,按图所示电路连接好被校验接触器,并且固定好。...
2023-07-05
电工经验电路——交流接触器校验电路,建议收藏

常见电动机控制线路的功能与实际应用(二)

点动开关控制单相交流电动机正/反转控制线路 采用点动开关的单相交流电动机正/反转控制电路是指通过改变辅助线圈相对于主线圈的相位,控制电动机正/反转工作状态的电路。该电...
2023-06-25
常见电动机控制线路的功能与实际应用(二)

水电安装预留预埋施工工艺标准做法|砖胎模技术交底

参考文章1 水电安装预留预埋施工工艺标准做法 建筑电气施工技术 目录 一、楼面、梁、墙柱内电线管预埋 二、混凝土墙内电气线盒安装 三、电箱底盒预埋及安装 四、预制墙板内管线...
2023-06-11
水电安装预留预埋施工工艺标准做法|砖胎模技术交底

插座为何左零右火?

在我们日常生活中,插座是不可或缺的电力连接设备。细心的人可能会发现,插座通常都是左零右火的设计,那么为什么会这样呢?这背后有着一定的科学原理和安全考虑。 首先,从历史和习...
2024-08-30
插座为何左零右火?

电工证复审——测试题

1、对于照明及电热负荷,导线安全载流量(A)≥所有电具的额定电流之和。( √ ) 2、对于照明及电热负荷,导线安全载流量(A)≥所有电具的额定电压之和。( × ) 3、对于动力负荷,...
2023-03-21

热销商品

广东珠江电线电缆阻燃国标定制BYJBV BVR YJV YJY RVV RVS RV KVV

广东珠江电线电缆,专注于阻燃国标定制,产品涵盖BYJBVBVRYJVYJYRVVRVSRVKVV等多种规格。我们采用先进生产技术,严格遵循国家标准,确保产品质量可靠、性能稳定。产品适...
¥ 1

可换头防静电塑胶镊子ESD-7A/242/249/259防划伤夹IC硅晶片陶瓷头

ESD-7A/242/249/259是一款专为半导体行业设计的防静电塑胶镊子,有效防止静电对敏感电子元件的损害。其独特之处在于可更换的镊子头,包括专为夹持IC硅晶片和陶瓷元件...
¥ 2

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

86型开关超薄自粘贴式防水罩浴霸开关家用防水盒浴室插座防溅盒子

86型开关超薄自粘贴式防水罩浴霸开关,是一种专为家用浴室设计的创新产品。其采用超薄设计,无需复杂布线,自粘贴式安装方式简洁高效,有效节省空间。防水罩有效阻挡水汽...
¥ 3.9

L型套筒扳手铣口烟斗双头弯头7字穿孔机修六角汽修轮胎工具6-19mm

L型套筒扳手是一款常用于工业领域的多功能工具,具备双头设计,可高效完成铣口、烟斗等多种工件孔位加工,适用六角汽修、轮胎等场景。其套筒尺寸为6-19mm,精准适配各类...
¥ 3.5

网站栏目