历史上的今天
今天是:2025年04月05日(星期六)
2020年04月05日 | MSP430单片机中MAB和MDB指的是什么?
2020-04-05 来源:eefocus
===============================================================================================================================
1.中断或主函数中有死循环,现象是程序停在某处。
2.堆栈溢出。现象是程序跑飞。
解决办法:
A.看中断有没有用 _EINT(),引起中断嵌套.
B.Project--Options--General Options---Stack/Heap 将Stack size设置大一些。
===============================================================================================================================
中断耗时太长,刚出中断又进去了.这时的现象是程序一直在中断中执行,回不到主函数。
检查CPU的电源是不是稳定,msp430在要保证程序正常运行,需保证Vcc大于1.8V。当电压低至0.8V时,程序仍有可能执行。这时的现象是PC指针乱飞,有复位,死机,停在中断,时钟频率发生变化等现象。
===============================================================================================================================
程序编译没问题,下载程序后上电不断复位,该问题是由于WDT造成的(RAM的初始化时间大于WDT默认的32MS时间,因此MSP复位)根本原因是初始化的时间过长,超过了看门狗的时间,初始化完成以后才能进入main函数,这时关狗已经来不及了。
===============================================================================================================================
解决的办法:
对你的数组用 __no init_定义,上电编译器不产生特殊的附加函数去初始化RAM.
===============================================================================================================================
在Project--Options--Linker--Config中选择 Override default programe,并将Entry lib 设置成 __program_start这时要修改Cstartup.S43(记得把它加入复制到工程而不是修改系统的),在第一条指令前加入关狗的指令,在main函数里再开(如果需要的话)
===============================================================================================================================
这个不太好总结 但好的编程习惯 可以减少这种问题
===============================================================================================================================
有时候要注意下,可能看起来是跑飞,但实际上只是运行在低功耗模式下没有执行程序。
另外有时候可能对堆栈有误操作
===============================================================================================================================
下一篇:MSP430复位的几种情况
史海拾趣
|
岗位名称:驱动工程师 岗位要求: 1.电子、通信、计算机、自控类相关专业本科以上学历; 2.1年以上嵌入式产品开发经验,熟悉各种常用的外围扩展芯片的驱动。 比如SCI,SPI,I2C总线,smartcard,tuner。 3.精通C语言、汇编,有嵌入式系统和实时 ...… 查看全部问答> |
|
一个装有Linux的嵌入式设备,要减少其电视卡的功耗该如何处理啊?(电视卡为mini pci接口) 我的想法有: 1. 让系统待机。但是不知道让系统待机的话,该电视卡是否还在继续接收电视信号? 2. 关闭电视卡的接收端口,但不知怎么写啊,那位大虾推 ...… 查看全部问答> |
|
STM32F103的USB/CAN怎么共用?(电路设计问题) 请问一下STM32的USB/CAN口在不能remap的条件下,接口电路(CAN收发器/usb总线)能否实现两个应用并存但是不同时应用:指的是在用CAN时不用USB,在用USB时不用CAN,能否实现?需要注意什么? 补充一下:我测试了TJA1050的RX/TX脚有内部上拉也不知 ...… 查看全部问答> |
|
我是名初学者,只会一点编程,对于设计电路时就老是会遇到问题,比如再把74hc245接入电路时,就老是会想这个芯片的需要的 驱动电流多少,最大负载多少,看技术手册又看不懂,都是英文,而且那些参数标的我的是一头雾水,不知道那个才是我的那个答 ...… 查看全部问答> |




