历史上的今天
今天是:2025年01月22日(星期三)
2020年01月22日 | msp430程序跑飞之解决方法
2020-01-22 来源:eefocus
1.中断或主函数中有死循环,现象是程序停在某处。
2.堆栈溢出。现象是程序跑飞。
解决办法:
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函数里再开(如果需要的话)。
如果用汇编,则没有这个问题
下一篇:MSP430程序升级方式探讨
史海拾趣
|
在s2440.h有这么一段: #define ADC_BASE 0xB1800000 // 0x58000000 typedef struct { unsigned int rADCCON; ...… 查看全部问答> |
|
买的是tq2440,有四个GPIO引脚支持SPI协议。 但是不知道调试的话该从何做起。 刚开始学习,网上溜达了好多天 看了driver下的驱动程序以及DOcument下面的test程序 但是具体是怎么个操作过程,希望有人能指点一下 譬如说是不是先要用导线将MISO ...… 查看全部问答> |
|
大家好: 我在修改config.bib文件,但是修改后,系统不能启动,大家看看是怎么回事.还有修改config.bib还需要修改其他文件吗? config.bib原文件 MEMORY ;#define CHAIN_ADDRESS 81E40000 ; ...… 查看全部问答> |
|
TBsoft-GUI,能支持真正事件驱动程序设计的嵌入式GUI,自己的作品 笔者第一个用于实际项目,并获得成功的的嵌入式系统小作品问世。 TBsoft-GUI,一个很小的,功能一般的GUI,一个结合了某些现代程序设计要素的GUI。 市面上少见的可以支持真正事件驱动程序设计的嵌入式GUI。使用控件,引发事件,能像VB一样,直接 ...… 查看全部问答> |
|
如何将Windows CE 5.0的模拟器集成到VS2005中? 我现在已经安装了Windows CE 5.0的模拟器,但是它是独立运行的,我想将它集成到VS2005中,具体应该怎么做? 我也试过安装了pocket pc的sdk,但是没有ce 的模拟器,那么具体应该安装哪个sdk哪? … 查看全部问答> |
|
刚来报到,给大家传份资料,有用到的可以下载看看,今后多多照顾! 有点不会用,上一个附件没传上来 [local]1[/local]… 查看全部问答> |
|
转贴:LM3S单片机UART的FIFO理解 和μDMA方式的UART 最近在看UART,看到这篇理解的不错,特转发过来,和大家一起学习学习。 Stellaris单片机有两个16字FIFO,分别用于缓存收和发的数据。FIFO触发中断的深度可设置,设置为8个数据(1/8)触发发送中断时,就是当发送FIFO中数据少于8时触发发送 ...… 查看全部问答> |




