msp430程序丢失问题分析及解决方法

ti的msp430系列是一款功耗低、市面流行的soc结构的cpu,适合做智能仪表。iar对其支持得很好,下面就以iar调试为例来说说msp430调试过程中一些问题。
1、接上仿真器,发现不能下载,iar提示找不到目标。 (1)并口驱动能力不足,在电脑的bios界面下设置成ecp或者ecp+epp模式;(2)jtag线太长,一般超过20cm不推荐,而且这个线最好不要交叉缠绕,会影响实时在线调试;
(3)负载太大,一般功耗相对比较大,电流超过20ma以上的板子,建议用外接电源,光靠并口的电源,mcu的电压被拉低到不能写flash。
2、程序下载到一半,突然告警并报错,说某某地址写不进去。 (1)芯片的复位电路引起的,在写flash的时候,会造成系统电压的一些波动,可能导致芯片复位,而为什么都是写到这个地址才错,那是iar的问题,改用bsl再烧一边,就可以克服了。
(2)芯片有可能死机了,断电,拔掉jtag,稍后再试,一般没有问题
(3)如果都不是上述的方法能解决的,可以给芯片上电,电压=3。6v,重新写一次,一般就ok了。为什么,写不进flash主要是f1xx系列的写flash电压不能低于2.7v,一般2.5v以下就不工作了,因此用3.6v电压,什么样的片子都能写回来。
3、f1611大数组定义,不能正常运行的问题 相信有不少朋友已经用上了f1611,这个ram相对大的msp430,可能会遇到ram中定义的变量/数组在超过一个极限的时候,msp程序不能正常运行的现象。一般初步判断,可以用i/o输出电平来确定程序进程,这样可以非常方便的知道该问题是由于wdt造成的,因为f1611等较大的ram的初始化时间大于wdt默认的32ms时间,导致msp复位。
(1)对数组用__noinit_定义,上电,编译器不产生特殊的附加函数去初始化ram。(2)修改iar中cstartup.s43文件中__program_start子程序,增加一个关闭wdt的操作或者设置wdt时间长度超过32ms。
(3)在project--options--linker--config中选择overridedefault
programe,并将entrylib设置成__program_start
上述是已知解决1611ram初始化时间超wdt默认而复位的解决方法,如果用汇编,则没有这个问题。
4、svs导致msp“坏死”问题 svs在f42x里可是个不错的模块,外部设计可以节约一个vd,成本和空间。在使用
时,如果svs的电压设置在3.3v,结果一次jtag写入后,板子便没有再起来工作,很多人认为写废了这个msp。此时,可以判断mcu是否还能工作的方法:接上电源和电流表,如果发现电流有周期性跳跃,确定mcu正在被svs复位。
解决方法:重新加电压,超过3.3v,修改设置,重写flash
msp430单片机的程序有时候容易出现跑飞的情况,导致运行不正常。常见原因总结如下:
没有设置停止看门狗,也没有及时喂狗
没有定义中断函数,但又开启了对应的中断,发生中断时,找不到中断函数入口
供电电压不稳,或io管脚输入过大电压,导致内部数据受到干扰
内存溢出,比如使用sprintf之类的函数很容易出现这种问题
msp430程序跑飞之解决方法 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函数里再开(如果需要的话)。
如果用汇编,则没有这个问题

充电桩背后的芯片生意
基于信令优化的用户感知体系
直流电动机正反转控制线路的工作原理
三极管的工作状态的判断
N4391A光调制分析仪+DSOX92004A示波器的优势
msp430程序丢失问题分析及解决方法
德索LVDS连接器镀金时需考虑的几个事项
小米6确认4月19日发布,黑科技够不够“黑”我们拭目以待
区分绝缘导线的种类
揭秘冰雪盛会中的商汤“黑科技” 广濑电机开发IPX4防水新插座
时擎科技入选中国AI芯片企业50强
使用过滤器电容器和诱导器来抑制受辐射的EMI
三倍压整流电路讲解
一文看懂汽车CAN总线技术原理
阿里巴巴存在“二选一”涉嫌垄断行为
率性绽放光芒,搭上科技艺术的快船——幻彩灯珠项目
中国证监会发布市场禁入决定书,决定对贾跃亭采取终身证券市场禁入措施
锐龙5 3500处理器的性能到底怎么样
离心泵控制系统如何实现远程监控与运维管理
电阻式触摸屏失灵怎么办_电阻式触摸显示屏的校准