历史上的今天
返回首页

历史上的今天

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

正在发生

2021年05月26日 | 单片机MSP430程序跑飞原因和解决方式积累

2021-05-26 来源:eefocus

1.中断或主函数中有死循环,现象是程序停在某处。


2.堆栈溢出。现象是程序跑飞。


*****************************************************************************


3、是否开了中断但是没有用。如:


开了中断:


TA0CCTL0 = CCIE;// CCR0 interrupt enabled

TA0CCTL1 = CCIE;// CCR1 interrupt enabled//时间周期1使能

TA0CCTL2 = CCIE;// CCR2 interrupt enabled//时间周期2使能

TA0CCTL3= CCIE;// CCR3 interrupt enabled//时间周期3使能


但是:


定时器中:


case 4:(TA0CCTL2 = CCIE;)和 case 6:(TA0CCTL3= CCIE;)内没有处理的程序。


……

case 2:

TA0CCR1 +=1024;// Add Offset to CCR2

SecondReach=1;

CountToMunite++;

Rquestinterval++;

SecondTimecount++;

break;// CCR4 not used

case 4:

break;

case 6:

break;

case 8:

break;// CCR3 not used

……


4、数组越界。定义的数组只有50个单元,但是程序运行的过程中,却给他赋给50+个单元。


解决办法:

A.看中断有没有用 _EINT(),引起中断嵌套.

B.Project--Options--General Options---Stack/Heap 将Stack size设置大一些。(堆栈溢出)


3.中断耗时太长,刚出中断又进去了.这时的现象是程序一直在中断中执行,回不到主函数。 (中断嵌套)


4.检查CPU的电源是不是稳定,msp430在要保证程序正常运行,需保证Vcc大于1.8V。当电压低至0.8V时,程序仍有可能执行。这时的现象是PC指针乱飞,有复位,死机,停在中断,时钟频率发生变化等现象。


5.程序编译没问题,下载程序后上电不断复位,该问题是由于WDT造成的(RAM的初始化时间大于WDT默认的32MS时间,因此MSP复位)根本原因是初始化的时间过长,超过了看门狗的时间,初始化完成以后才能进入main函数,这时关狗已经来不及了。


解决的办法:

A 对你的数组用 __no init_定义,上电编译器不产生特殊的附加函数去初始化RAM.

B 在Project--Options--Linker--Config中选择 Override default programe,并将Entry lib 设置成 __program_start这时要修改Cstartup.S43(记得把它加入复制到工程而不是修改系统的),在第一条指令前加入关狗的指令,在main函数里再开(如果需要的话)。

如果用汇编,则没有这个问题


*****************************************************************************


6、把无用的中断允许关掉。


推荐阅读

史海拾趣

BOOKHAM公司的发展小趣事

随着市场的不断扩大,BOOKHAM公司意识到单打独斗难以取得更大的突破。于是,公司开始积极寻求与其他企业的战略合作。通过与一家知名电子设备制造商的合作,BOOKHAM公司成功将其光学元件产品集成到对方的产品中,共同开拓市场。这种合作不仅提升了BOOKHAM公司的市场份额,还为其带来了更多的商业机会和合作伙伴。

Free2Move公司的发展小趣事

BOOKHAM公司自创立之初,就专注于光学元件的研发和生产。随着电子行业的快速发展,公司不断投入研发资源,终于在一次技术突破中,成功开发出一款高性能的光学元件。这款元件凭借其卓越的性能和稳定的品质,迅速获得了市场的认可,BOOKHAM公司也因此名声大噪,逐渐在电子行业中崭露头角。

Eska公司的发展小趣事

除了造纸业务外,Eska公司还专注于消防手套的研发与制造。50多年前,Eska就开始研发消防手套,并一直将安全性放在首位。公司严格遵循最大安全性、敏感度、耐火、切割保护、防热和防伤害等标准,确保消防手套在各种环境下都能为消防员提供可靠的保护。Eska的消防手套因其卓越的性能和质量,深受世界和欧洲消防竞技大赛冠军及参赛者的信任和喜爱。

ANSHAN [Anshan Suly Electronics]公司的发展小趣事

近年来,随着电子行业的竞争日益激烈和市场环境的不断变化,ANSHAN公司面临着前所未有的挑战。然而,公司始终保持着清醒的头脑和坚定的信心,积极应对各种挑战。公司不断调整战略方向,优化产品结构,加大创新力度,推出了一系列具有竞争力的新产品。同时,公司还积极拓展新的市场领域和合作伙伴,为公司的持续发展注入了新的动力。

这五个故事展示了ANSHAN公司在电子行业发展中不断克服困难、取得成就的历程。从创业初期的艰辛与坚持,到技术突破与产品升级,再到市场拓展与品牌建设、人才培养与团队建设以及应对挑战与持续创新,ANSHAN公司始终保持着坚定的信念和不懈的努力,在电子行业中谱写了一曲曲壮丽的篇章。

富士康(FOXCONN)公司的发展小趣事

为了更好地服务全球客户,FMS积极实施全球化战略。公司在中国深圳设立了子公司——深圳市美丽微半导体有限公司,作为在中国大陆的主要生产基地与销售窗口。同时,FMS还在亚洲、欧洲、美洲等地设立了多个销售据点,形成了覆盖全球的营销网络。这一布局不仅提升了FMS的市场响应速度,也极大地增强了其品牌影响力。

诚芯微(CXW)公司的发展小趣事

在2009年,诚芯微(CXW)公司在深圳成立,标志着其在中国电子行业的初步涉足。公司创始人凭借对集成电路设计领域的深刻理解和前瞻性的市场洞察,决定专注于电源芯片的研发与设计。初期,公司面临着资金紧张、技术储备不足等挑战,但创始人带领团队坚持自主研发,逐步积累了技术实力。

问答坊 | AI 解惑

寻址方式与指令系统

一、概述 1、指令的格式 我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难 ...…

查看全部问答>

发个单片机的课件给想自学单片机的人

[ 本帖最后由 315515297 于 2009-5-6 14:52 编辑 ]…

查看全部问答>

05年电子竞赛文集

本帖最后由 paulhyde 于 2014-9-15 03:53 编辑 最全最强的05年电子竞赛文集  …

查看全部问答>

获取进程时遇到的问题。。。

用CreateToolhelp32Snapshot获取系统快照 在phone上调用失败。。 查了一下看到 http://www.winbile.net/bbs/forums/threads/1037955.aspx 有这个论点:在手机上经过测试发现,手机可用内存小于25.97MB的时候,获取系统进程快照都会失败 请问有 ...…

查看全部问答>

pc和arm的USB通信问题,希望高人指点

我的arm带有wince5.0的系统,通过usb和pc相连,我现在要实现两者的实时通信:在arm和pc上各写个应用程序,双方能实时收发数据。 arm接到pc上后,pc能够检测到, 我写了个vc的应用程序 调用了 createfile()打开了设备,调用writefile()向usb口 ...…

查看全部问答>

关于回调函数封装.NET组件的问题

底层类库是用C/C++开发的,在上层进行.NET组件封装,在封装回调函数时,X86环境没有问题,CE Mobile不成功,是CE Mobile不支持这种特性吗…

查看全部问答>

肯求高手进!关于CPLD的逻辑电路的设计

     我的问题是这样的,我要用CPLD设计几个逻辑模块,完成这样的功能:主要是来处理两个只有很短时间间隔的脉冲信号,用CPLD来记下这两个信号的时间间隔,并把这个时间t通过USB接口芯片传给上位机。请问我这CPLD中的逻辑电路 ...…

查看全部问答>

如何用vxworks的bootrom启动Linux

开发板为sbc8260,原来跑的是vxworks,现在想跑Linux,由于没有烧写器,所以想用vxworks的引导程序bootrom来引导Linux,而且我相信应该是可以的。 我理解vxworks的bootrom引导过程:bootrom通过tftp将vxworks映像下载到地址0x00010000,然后跳到地 ...…

查看全部问答>

在VHDL中,使用一个时钟的两个沿(上升沿、下降沿)对同一信号进行修改方法

解决方法:使用“异或”(xor)逻辑。示例如下:      process (CLK)      begin          if rising_edge(CLK) then              ...…

查看全部问答>

犀利不解释。。。1114开发板的原理图

          最近一直在忙自己工作的事情,也没时间来论坛来发发帖子。。。不过总算是把新工作搞定了,目前离职期间,比较空闲,把自己手头的资料给大家共享下,之前得到了nxp朋友的帮忙,得到了 ...…

查看全部问答>