单片机程序跑飞解决方法介绍
  经常触摸单片机的兄弟,必定遇到过单片机程序跑飞的疑问。因为程序较为杂乱,所以一旦呈现跑飞的表象就对比难以查找过错呈现的当地,网络上对过错的解释和解决方法也对比形形色色,并不方便查找。小编特意帮我们整理了关于单片机程序跑飞死机的缘由,我们快来看看能不能在其中找到自个想要答案吧。

  单片机程序死机,跑飞了可以从以下几个方面查找缘由:

  1.意外中止。

  是不是翻开了某个中止,可是没有响应和铲除中端象征,致使程序一向进入中止,形成死机假象。

  2.中止变量处理不妥。

  若界说某些会在中止中修正的大局变量,这时要注意两个疑问:首要为了避免编译器优化中止变量,要在这些变量界说时前加volatile,其次在主循环中读取中止变量前应当首要封闭大局中止,避免读到一半被中止给修正了,读完以后再翻开大局中止;不然呈现形成数据凌乱。

  3.地址溢出,多见过错为指针操作过错。

  我要侧重说的是数组下标运用循环函数中循环变量,假如循环变量没操控好则会呈现数组下标越界,意外修正体系的寄存器形成死机,这种情况下假如死机阐明命运好,不然后面不知道发作啥头疼的事。

  4.无条件的死循环。

  比方运用while(x);等待电平改变,正常情况下x都会成为0,就怕万一,因此最佳加上时刻限制。

  5.看门狗没有封闭。

  有的单片机即便没运用看门狗开机时也有也许意外自动开启了最小周期的看门狗,致使软件不断复位,形成死机,这个要看芯片手册,最佳在程序复位后首要应当显式铲除看门狗再封闭看门狗。

  6.仓库溢出。

  最难查找的疑问,关于容量小的单片机,尽量削减函数调用层级,削减局部变量,从而削减压栈的时分所需的空间。当你把以上几条都试过不能解决疑问,试一试把你的被调用少函数直接内置到调用的当地而且把占用RAM大的局部变量改成大局变量,试一试说不定就可以了。

  深圳市鸿普达科技有限公司十几年电子产品硬件及嵌入式软件开发设计经验,累计开发产品电子应用设计完成上万多个方案设计;目前为客户提供理念超前的手机app开发、智能家居系统、电子技术、电子线路设计、PCB设计、电路板设计、单片机技术、智能控制、嵌入式系统、智能控制器、模拟数字电路、物联网工程、云服务、云计算、云存储的大数据管理软件设计等技术服务;从产品研发理念,营销模式升级,产品更新换代。

       电子产品开发  方案开发  单片机开发

       

2017.02.01
在线客服