历史上的今天
返回首页

历史上的今天

今天是:2025年05月04日(星期日)

2018年05月04日 | 单片机程序死机跑飞查错指南

2018-05-04 来源:eefocus

1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象;

2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。

3. 地址溢出,常见错误为指针操作错误。我要着重说的是数组下标使用循环函数中循环变量,如果循环变量没控制好则会出现数组下标越界,意外修改系统的寄存器造成死机,这种情况下如果死机说明运气好,否则后面不知道发生什么头疼的事。

4. 无条件的死循环;比如使用while(x);等待电平变化,正常情况下x都会变成0,就怕万一,因此最好加上时间限制;

5. 看门狗没有关闭。有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位,造成死机,这个要看芯片手册,最好在程序复位后首先应该显式清除看门狗再关闭看门狗;

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


推荐阅读

史海拾趣

Blue Giga公司的发展小趣事

Blue Giga的创立可以追溯到芬兰埃斯波的一个科技孵化器。创始人看到了物联网和短距离无线连接技术的巨大潜力,决定成立一家公司专注于这一领域。初期,Blue Giga面临着资金紧张、市场认知度低等诸多挑战,但凭借其卓越的技术和不懈的努力,逐渐在行业中崭露头角。

FSP [FSP TECHNOLOGY INC.]公司的发展小趣事

收购后,Blue Giga在芬兰埃斯波的研发中心继续发挥其技术创新的优势,不断推出新产品和解决方案。同时,借助Silicon Labs的全球销售网络,Blue Giga的产品开始进入更多国家和地区的市场。公司的业务范围不断扩大,应用领域也更加广泛,涵盖了工业自动化、消费类电子产品、汽车等多个领域。

这五个故事描绘了Blue Giga从创立到发展的过程,展示了其在电子行业中的努力和成就。虽然每个故事都基于事实,但具体细节可能因缺乏详细资料而有所简化或推测。如需更深入的了解,建议查阅Blue Giga的官方资料或相关新闻报道。

Data Device Corporation公司的发展小趣事

DDC始终坚持以客户为中心的经营理念,不断倾听客户需求,为客户提供优质的产品和服务。为了保持技术领先地位,DDC不断投入研发,推动产品创新。同时,DDC还建立了完善的客户服务体系,确保客户在使用过程中能够得到及时、有效的支持。这些举措使得DDC在客户中赢得了良好的口碑,为公司的发展奠定了坚实的基础。

General Electric Solid State公司的发展小趣事

DDC始终坚持以客户为中心的经营理念,不断倾听客户需求,为客户提供优质的产品和服务。为了保持技术领先地位,DDC不断投入研发,推动产品创新。同时,DDC还建立了完善的客户服务体系,确保客户在使用过程中能够得到及时、有效的支持。这些举措使得DDC在客户中赢得了良好的口碑,为公司的发展奠定了坚实的基础。

C.K Magma公司的发展小趣事

为了进一步提升技术水平和市场竞争力,C.K Magma公司积极寻求国际合作。他们与国外的知名科研机构和企业建立了战略合作关系,共同开展技术研发和市场拓展。这些合作不仅为公司带来了先进的技术和管理经验,还拓宽了公司的国际视野,为公司的长远发展奠定了坚实基础。

DuPont公司的发展小趣事

早在20世纪初,DuPont公司就开始涉足电子材料的研发。当时,随着电子技术的飞速发展,对于高性能、高可靠性的电子材料的需求日益迫切。DuPont凭借其深厚的化学技术积累,成功开发了一系列具有优异性能的电子材料,如高性能绝缘材料、导电材料和封装材料等。这些材料的推出,不仅极大地推动了电子行业的发展,也为DuPont公司在电子材料领域奠定了坚实的基础。

问答坊 | AI 解惑

基于蓝牙和ZigBee技术的可穿戴网络设计

可穿戴网络是指基于短距离无线通信技术(蓝牙和ZigBec技术等)与可穿戴式计算机(wearcomp)技术、穿戴在人体上、具有智能收集人体和周围环境信息的一种新型个域网(PAN)。可穿戴计算机可以为可穿戴网络提供核心计算技术。有Ad Hoc性能的蓝牙和ZigBee等 ...…

查看全部问答>

急求EPM3256ATC144的引脚图

如题  或者EPM1270的也可以 最好能给个能直接用它的IO口的原理图出来 谢谢~!…

查看全部问答>

中国与日本德国最可怕的差距!!! (ZZ)

当我和厂里的师傅们在为了使数控机床提高一级精度而不分白夜进行调试、翻译德文资料时,当我费尽千辛万苦又没有假期和加班费、满身污垢,满手是伤,操作失败了无数次但最终第一次加工制造出精度达到预计的0.0001毫米要求的样品时,我兴奋了一阵 ...…

查看全部问答>

无法定位程序输入点……于动态链接库wgapi.dll上

    电脑中毒了,总是跳出某一块内存(一串数字标出来的)can\'t read,而且只要我打开无线链接,同寝室的网都一下子卡住了,似乎特别的敏感(我原来一直都是用无线上网的,也从来没有出现过这种情况),我查看资源管理器,发现资源管理 ...…

查看全部问答>

关于用FPGA实现数值算法

需要用FPGA用实现一种数值算法-QP(二次规化问题),没有这方面的经验,各位提供点建议和思路,谢谢…

查看全部问答>

电子产品研发需要哪些实验设备呀?希望大家踊跃发言!!!

公司是个电子设备公司,最近要采购一些设备。研发部目前只有万用表,示波器。 还需要什么设备?电子产品抗干扰能力该用什么设备测试呢?…

查看全部问答>

学习嵌入式操作系统需要什么条件

我想先学一学嵌入式操作系统,但不知道学哪一个好,可能会先Linux吧。 更重要的是,我不知道学习Linux需什么条件,特别是硬件,是不是只需要一台电脑就行呢?我就只有一台电脑,这样可以学Linux了吗? 我还是个菜鸟,希望大家能给我一些建议,不 ...…

查看全部问答>

如何把3V转成5v?

很多芯片工作电压是5v的,我怎么能让430可靠的驱动他们?…

查看全部问答>

请教一种传感器

我手头有一个传感器,  大概测试了一下, 传感器内部由两个线圈组成. 一个线圈用来产生一定大小的磁场, 另一线圈用来检测这个磁场   请问, 这种传感器怎么称呼啊? …

查看全部问答>

msp430认识到学习

时间好紧,感觉学起来还是有点不适应,求好的相关的msp430资料,感激不尽…

查看全部问答>