0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

致单片机程序总是跑飞怎么办

Q4MP_gh_c472c21 来源:个人图书馆 作者:xpxys99 2021-09-26 10:45 次阅读

单片机中有看门狗,长时间不喂狗,程序就会复位。为什么长时间不喂狗呢?这是因为程序跑飞了,抛开外部因素不谈。今天就和大家分享一下,单片机程序跑飞的几个原因。

在编写单片机程序的时候,由于中断服务程序写的不好,导致单片机程序总是跑飞,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机程序跑飞的三种现象、原因以及解决方法。

01数组越界/溢出

现象:

单片机程序在函数中运行时,总是在运行到函数末尾,要跳出函数时,程序跑飞。

原因:

数组越界(数组溢出),函数中定义的数组元素的个数小于程序中实际使用的数组元素的个数,例如在函数中定义了一个数组ucDataBuff[10],这个数组只有10个元素,但是在函数中却有这样的语句ucDataBuff[10]=0x1a,这个语句是给数组的第11个元素赋值,:由于定义的数组只有10个元素,从而导致赋值语句中不知道把0x1a放到什么地方,从而导致程序跑飞。

解决方法:

如果在调试程序时,发现程序总是在函数执行完毕时跑飞,多数情况是发生了数组越界(数组溢出)的错误,仔细检查函数中调用的数组是否存在越界(溢出)的情况。

0

2

中断服务程序缺失

现象:

程序运行过程中总是跑飞。

原因:

程序中打开了某个中断,但是却没有相应的中断服务程序,从而导致在中断发生后,找不到中断服务程序入口,从而导致程序跑飞。

解决方法:

检查程序中是否存在打开了某个中断,但是没有相对应的中断服务程序。

0

3

看门狗复位

现象:

在执行一段较为耗费时间的程序时,程序跑飞,并且总是跳到复位位置处。

原因:

程序中使用了看门狗,但是没有及时“喂狗”,从而导致看门狗复位,使程序直接跳到复位位置。

解决方法:

根据程序运行时间,尤其是一定要计算清楚最耗时的那段程序的运行时间,然后准确设置看门狗的复位时长,定时“喂狗”,尤其是如果有死循环的情况,一定要在死循环中记得“喂狗”。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6029

    文章

    44480

    浏览量

    631587
  • 看门狗
    +关注

    关注

    10

    文章

    558

    浏览量

    70691
  • 程序
    +关注

    关注

    115

    文章

    3753

    浏览量

    80709

原文标题:单片机程序又跑飞?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机怎么写入程序

    程序通常涉及以下几个步骤: 选择单片机和开发环境 : 确定项目需求,选择合适的单片机型号。 安装相应的开发环境,如Keil、IAR、MPLAB等。 硬件连接 : 将单片机连接到开发板或
    的头像 发表于 10-21 11:21 162次阅读

    什么原因会导致单片机程序

    ______________________________________ 什么原因会导致单片机程序
    发表于 10-16 22:31

    keil可以读出单片机程序

    Keil是一款广泛应用于单片机程序开发的软件,它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。然而,关于Keil是否能直接“读出”单片机程序
    的头像 发表于 09-02 10:32 538次阅读

    单片机烧录程序用什么软件

    单片机烧录程序单片机开发过程中的一个重要环节,涉及到将编写好的程序代码通过烧录器写入单片机的ROM中,以实现对
    的头像 发表于 09-02 10:05 658次阅读

    单片机烧录程序的线比单片机上的少还能烧录吗

    单片机烧录原理 单片机烧录是指将编写好的程序代码通过一定的方式传输到单片机的存储器中,使其能够按照程序的指令运行。这个过程通常需要使用烧录器
    的头像 发表于 09-02 09:54 331次阅读

    单片机烧录程序的基本步骤是什么

    单片机烧录程序单片机开发过程中非常重要的一步,它涉及到将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使
    的头像 发表于 09-02 09:47 580次阅读

    单片机Freertos怎么样?

    单片机Freertos好移植么?参考资料好不好找?
    发表于 03-25 15:22

    AURIX2G系列的单片机多核程序应该怎么配置?

    AURIX2G系列的单片机多核程序应该怎么配置,感觉没有头绪
    发表于 02-20 06:15

    单片机RAM不够用怎么解决?

    来自一位用户的咨询,麻烦帮忙解答。越详细越好,有图有真相。如有相关的视频、文档也可以辅助说明,谢谢。 单片机RAM不够用怎么办单片机都有RAM,如果我们一下子定义了一大堆的变量,使得变量占的空间大于RAM,这样
    发表于 02-02 07:35

    分享一下用ST-LINK Utility识别单片机程序是否

    最近有网友大概问了这样的问题:单片机项目偶尔经常出现异常,不知道是程序飞了,还是进入某个死循环了。
    的头像 发表于 01-09 11:40 2760次阅读
    分享一下用ST-LINK Utility识别<b class='flag-5'>单片机</b><b class='flag-5'>程序</b>是否<b class='flag-5'>跑</b><b class='flag-5'>飞</b>

    风机轴磨损怎么办

    电子发烧友网站提供《风机轴磨损怎么办.docx》资料免费下载
    发表于 01-07 11:04 0次下载

    4260纸烘缸轴磨损怎么办

    电子发烧友网站提供《4260纸烘缸轴磨损怎么办.docx》资料免费下载
    发表于 12-18 10:38 0次下载

    漏电开关总是跳闸怎么办

    漏电开关总是跳闸怎么办?  漏电开关的跳闸问题一直是家庭和办公室电气安全的隐患之一。当漏电开关频繁跳闸时,我们必须采取恰当的方法来解决这个问题,以确保电气安全和正常的用电。本文将详细介绍跳闸的原因
    的头像 发表于 12-15 11:33 1851次阅读

    pcb钻孔偏孔了怎么办

    pcb钻孔偏孔了怎么办
    的头像 发表于 11-22 11:10 3111次阅读
    pcb钻孔偏孔了<b class='flag-5'>怎么办</b>?

    单片机在实际应用中怎样防干扰?

    单片机在实际应用中怎样防止静电获得其他带来的干扰导致程序
    发表于 11-09 07:25