单片机程序死机跑飞差错

发布者:中原读书客最新更新时间:2017-11-14 来源: eefocus关键字:单片机  程序死机跑飞 手机看文章 扫描二维码
随时随地手机看文章

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

    其实在实践中学习成长是个好方法,当然查阅资料站在巨人的肩膀上“拿来”是快捷的方式啊,这点向牛顿学习!

关键字:单片机  程序死机跑飞 引用地址:单片机程序死机跑飞差错

上一篇:单片机的下载方式讲解
下一篇: 单片机中LED数码管的介绍

推荐阅读最新更新时间:2024-03-16 15:44

单片机驱动PS/2键盘
PS/2简介 PS/2设备有主从之分,主设备采用Female插座,从设备采用Male插头.现在广泛使用的PS/2键盘鼠标均在从设备方式下工作.PS/2接口的时钟 与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中).主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生. 1.1 从设备到主设备的通信 当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平.如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据.传输的每一帧由11位组成,发送时序及每一位的含义如图2所示. 每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止
[单片机]
<font color='red'>单片机</font>驱动PS/2键盘
QDE-2LCD与8051接口
620)this.width=620;">
[单片机]
QDE-2LCD与8051接口
为提高单片机开发系统稳定性和可扩展性的C8051F 单片机实验系统设计
为进一步简化电路结构, 提出一种C8051F 单片机实验系统设计方案,该方案采用FPGA 实现单片机各种外设接口。FPGA 作为一种可编程逻辑器件凭借其优越的可扩展性能受到设计者的青睐,逐渐成为分立元件的替代者。通过对FPGA 编程,实现任何数字元件的逻辑功能,设计者可以通过原理图输入或硬件描述语言, 方便地设计一个数字系统,这使得单片机外围电路的设计简单、灵活、可靠。 本系统是为单片机实践教学而开发的,因此要求单片机的功能齐全,满足教学中各种实验的要求。一般的实验板的功能有:模拟数字信号转换实验、通信接口实验、存储器实验、各种显示实验,人机交互实验等等。除此之外,还要考虑由于是非商业性质的开发, 对一些功能的精度要求不是很高
[单片机]
为提高<font color='red'>单片机</font>开发系统稳定性和可扩展性的C8051F <font color='red'>单片机</font>实验系统设计
基于AVR单片机的高精度频率调节器
1?引言? 在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。 Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的场合。? 本文
[应用]
51单片机对LED点阵屏的设计
LED点阵屏发光亮度强,指示效果好,可以制作运动的发光图文,更容易吸引人的注意力,信息量大,随时更新,有着非常好的广告和告示效果。笔者此处就LED点阵屏动态扫描显示作一个简单的介绍。 1. LED点阵屏显示原理概述 图1-1为一种8x8的LED点阵单色行共阳模块的内部等效电路图,对于红光LED其工作正向电压约为1.8v,其持续工作的正向电流一般10ma左右,峰值电流可以更大。如下图,当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮,当某一行线为低电平时,无论列线如何,对应的这一行的点全部为暗。LED点阵屏显示就是通过一定的频率进行逐行扫描,数据端不断输入数据显示,只要扫描频率足够高,由于人眼的视觉残留效应,就可以看到
[单片机]
51<font color='red'>单片机</font>对LED点阵屏的设计
采用Cortex-M3单片机设计的WiFi物联网小车
  WiFi物联网小车设计方案,采用电脑上位机软件通过无线WiFi 控制小车的运动,采集小车的信息。与传统的“智能小车”相比,主要特点在于使用32 位高性能单片机控制、互联网通信机制和电脑上位机软件控制。此方案融合了电脑软件、网络通信、图像处理、图形显示、运动控制、速度采集和温度采集等技术,具有“物联网”的相关特点。传统的小车控制大多使用红外通信,使用遥控器进行控制,不但受到距离的限制,而且远没有电脑软件直观美观。互联网通信使小车具备远程控制的能力,这是红外通信望尘莫及的。此外,本方案小车控制芯片采用Cortex-M3单片机,该单片机具有极丰富的外设,这给小车以后功能升级和扩展奠定了基础。   1 总体设计方案   WiFi 物联
[电源管理]
采用Cortex-M3<font color='red'>单片机</font>设计的WiFi物联网小车
【知识点】80C51单片机的内部结构
单片机按存储结构可分为二类:一类是哈佛结构,另一类是普林斯顿结构。哈佛结构所谓哈佛结构是指程序存储器地址空间与数据存储器地址空间分开的单片机结构,如80C51单片机采用哈佛结构,所以80C51单片机的程序存储器地址空间与数据存储器地址空间是分开的,各有64K存储空间。 普林斯顿结构所谓普林斯顿结构是指程序存储器地址空间与数据存储器地址空间合并的单片机结构,如MCS-96单片机采用普林斯顿结构,所以MCS-96单片机的程序存储器地址空间与数据存储器地址空间是合并的,共有64K存储空间。 1.单片机的CPU 图1是80C51单片机的内部结构框图。若除去图中的存储器电路和I/O部件,剩下的便是CPU。它可以分为运算器和控制器两部
[单片机]
【知识点】80C51<font color='red'>单片机</font>的内部结构
51单片机基础知识学习总结
1、什么是单片机 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 Intel公司推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。 2、单片机的作用 用到单片机的项目经验介绍 手持粮库温度寻检设备 毕设答辩打分器 电话台灯 自动感应水龙头 凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等 工业自动化:数
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved