电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

单片机程序死机跑飞要素剖析

2017-04-12 17:32分类:PLC基础知识 阅读:

  单片机程序死机,跑飞了能够从以下几个方面查找要素:
1. 意外接连。是不是翻开了某个接连,可是没有照料和根除中端象征,致使程序一贯进入接连,构成死机假象
2. 接连变量处理不当。若界说某些会在接连中批改的大局变量,这时要留神两个疑问:首要为了避免编译器优化接连变量,要在这些变量界说时前加volatile,其次在主循环中读取接连变量前应当首要封闭大局接连,避免读到一半被接连给批改了,读完往后再翻开大局接连;不然呈现构成数据杂乱。
3. 地址溢出,多见过失为指针操作过失。我要偏重说的是数组下标运用循环函数中循环变量,假定循环变量没操控好则会呈现数组下标越界,意外批改体系的寄存器构成死机,这种情况下假定死机阐明命运好,不然后边不知道发作啥头疼的事。
4. 无条件的死循环;比方运用while(x);等候电平改动,正常情况下x都会变成0,就怕假定,因而最佳加上时刻绑缚;
5. 看门狗没有封闭。有的单片机即便没运用看门狗开机时也有或许意外主动翻开了最小周期的看门狗,致使软件不断复位,构成死机,这个要看芯片手册,最佳在程序复位后首要应当显式根除看门狗再封闭看门狗;
6. 库房溢出。最难查找的疑问,关于容量小的单片机,尽量削减函数调用层级,减稀有些变量,然后削减压栈的时分所需的空间。当你把以上几条都试过不能处理疑问,试一试把你的被调用少函数直接内置到调用的本地而且把占用RAM大的有些变量改满意局变量,试一试说不定就能够了。

上一篇:串行通讯的根柢办法

下一篇:单片机编译预处理指令

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部