历史上的今天
返回首页

历史上的今天

今天是:2025年08月12日(星期二)

正在发生

2020年08月12日 | msp430程序丢失问题分析及解决方法

2020-08-12 来源:elecfans

  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电压,什么样的片子都能写回来。

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

  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程序丢失问题分析及解决方法

  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函数里再开(如果需要的话)。


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

推荐阅读

史海拾趣

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

Alpha & Omega Semiconductor(简称AOS)是一家全球领先的半导体公司,致力于设计、制造和销售高性能、高可靠性的功率半导体产品。以下是Alpha & Omega Semiconductor公司发展的相关故事:

  1. 公司成立和早期发展: Alpha & Omega Semiconductor公司于2000年成立于美国加利福尼亚州的Santa Clara市。公司成立之初,专注于研发和生产功率半导体器件,包括功率MOSFET、IGBT、功率IC和电源管理器件等。通过不断创新和技术突破,公司迅速在市场上建立了良好的声誉,并吸引了投资者的关注。

  2. 技术创新和产品发展: Alpha & Omega Semiconductor公司在功率半导体领域不断进行技术创新和产品研发。他们不断推出新的产品系列,包括低压、中压和高压功率MOSFET、IGBT和功率集成电路等,以满足不同应用领域的需求。公司还专注于提高产品性能、降低功耗,并不断优化产品结构和工艺流程。

  3. 全球化布局和生产基地: 随着业务的不断扩张,Alpha & Omega Semiconductor公司逐步建立了全球化的运营和生产体系。除了总部位于美国的研发中心外,公司还在亚洲地区建立了多个生产基地和销售办事处,包括中国、台湾、韩国和菲律宾等地。这些生产基地不仅提高了产品供应的灵活性和效率,还加强了与当地客户和合作伙伴的合作关系。

  4. 持续投入研发和创新: Alpha & Omega Semiconductor公司持续投入大量资源用于研发和创新,致力于提供行业领先的功率半导体解决方案。公司与全球顶尖的研究机构和合作伙伴合作,共同探索新的材料、工艺和器件结构,以应对不断变化的市场需求和技术挑战。通过持续的技术创新,公司不断拓展产品线,拓展业务领域,并保持了在市场上的竞争优势。

  5. 持续发展和业务拓展: Alpha & Omega Semiconductor公司持续保持业务的稳健增长和发展态势,不断拓展业务范围和市场份额。公司在汽车电子、工业控制、通信设备、消费电子和电源供应等领域取得了广泛的应用,成为了全球领先的功率半导体供应商之一。同时,公司还通过并购和合资等方式,加速业务拓展,拓展了在新兴领域的市场地位。

以上是Alpha & Omega Semiconductor公司发展的相关故事,展示了他们在功率半导体领域的持续创新和不断发展的势头。

Astema公司的发展小趣事

随着公司规模的扩大,Astema开始关注可持续发展和社会责任。公司致力于推动绿色生产,减少对环境的影响。同时,Astema还积极参与社会公益活动,回馈社会。这些举措不仅提升了公司的社会形象,还为公司的长期发展注入了新的动力。

以上这些故事只是模拟Astema公司可能的发展路径和挑战,并非真实情况。真实的电子行业公司发展历程往往更加复杂和多元,需要综合考虑多种因素。如果您对Astema公司的真实发展情况感兴趣,建议查阅相关的行业报告、公司年报或新闻报道等。

Advanced Milliwave Laboratories Inc公司的发展小趣事

Advanced Milliwave Laboratories Inc(AML)成立于XXXX年,最初由几位在微波技术领域具有丰富经验的专家组成。初创期,AML专注于高频微波技术的研发,通过不断的实验和创新,成功开发出多款具有高性能和稳定性的微波产品。这些产品迅速获得了市场的认可,为AML在微波技术领域奠定了坚实的基础。

Daco Semiconductor Co Ltd公司的发展小趣事

Daco Semiconductor在成立之初就专注于半导体技术的研发与创新。公司由一群对半导体行业充满热情的工程师创立,他们致力于开发更高效、更稳定的半导体产品。一次偶然的实验中,Daco的研发团队发现了一种新型的材料组合,这种材料组合能够显著提高半导体的性能和稳定性。这一技术突破成为了Daco的核心竞争力,也为其在竞争激烈的半导体市场中打开了新的局面。

BOSER公司的发展小趣事

随着科技的不断发展,BOSER公司意识到只有不断创新才能在激烈的竞争中立于不败之地。因此,公司投入大量研发资源,致力于开发具有自主知识产权的新技术。经过不懈努力,BOSER成功推出了一系列创新产品,引领了电子行业的技术发展潮流。

Hsuan Mao Technology Co公司的发展小趣事

BOSER公司始终关注企业社会责任和可持续发展。公司在生产过程中积极采用环保材料和技术,降低能耗和排放。同时,BOSER还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

需要强调的是,以上五个故事是基于电子行业常见趋势和挑战虚构的BOSER公司的发展故事。虽然这些故事是虚构的,但它们反映了电子公司在发展过程中可能遇到的机遇和挑战,以及如何通过不断创新和适应市场变化来实现持续发展。如果您希望了解真实存在的电子公司的发展故事,建议查阅相关公司的官方资料或新闻报道。

问答坊 | AI 解惑

简单、特殊的稳压电路

简单、特殊的稳压电路: 在某些场合,如果带载运行中需要一个稳压电源,作为控制、检测等用途。则这个电路显得比较简洁、方便。调整R1、R2的比值,可以改变稳压块的输入电压,C1的值与稳压输出的负载有关。A 将单向晶闸管改为双向晶闸管的话, ...…

查看全部问答>

求助!!那位高手大哥!

求助!!那位高手大哥!能帮忙我写个连发心片(支持十个按键),我想给XBOX360无线手柄加上连发功能!按TURBO二下(一下是半自动)+你所要想要连发的键,取消的话按连发的键+手柄后的Clean键就取消了! 市场只有卖HORI牌支持4个按键有线的(不好用)! ...…

查看全部问答>

关于EPCS16下载的问题

新做了一个FPGA板子,上电就发热,检查了各个引脚,均正常,也把没有用的引脚配置为三态的,还是没有用。请问有没有哪位师傅知道问题会出在哪里? 还有我用的EPCS16配置芯片,出现下面图示的提示,连接也正确,不知道是为什么!…

查看全部问答>

安装QTOPIA的问题

make: [clean] 错误 123 (忽略) cd tutorial; make clean make[1]: Entering directory `/utulinux/qtopia-1.7-tp/qt-embedded-2.3.7/tutorial\' Some requirements (standard configuration) are not met. Skipped. make[1]: Leaving directo ...…

查看全部问答>

ADS的EQN功能怎么用,等噪声圆、增益圆

在仿真LNA时,遇到这样的一个问题,要看噪声系数圆,要输入这样公式:circleData=ns_circle(NFmin[indx]+{0,0.1,0.2},NFmin[indx],Spot[indx],Rn[indx]/50,51)…

查看全部问答>

WINCE 设备调试过程中,MFC视图的OnDraw函数中 一段代码总是过不去

WINCE 设备调试过程中,MFC视图的OnDraw函数中 一段代码总是过不去 仔细检查发现 并无问题  但就是过不去 当我 用 Messagebox一步步调试一 遍就可以进去了 然后去掉MESSAGEBOX程序可以顺利通过了 这样的问题已经碰到几次了 &n ...…

查看全部问答>

(C#)怎么判断Windows Mobile的程序与PC的SQL Server连接是否有效?怎么判断服务器端SQL CE的sqlcesa30.dll的虚拟目录是

怎么判断Windows Mobile的程序与PC的SQL Server连接是否有效?怎么判断服务器端SQL CE的sqlcesa30.dll的虚拟目录是有效的?WM5.0上的程序是用C#写的。 每个问题20分! 多谢各位发言,接分。…

查看全部问答>

51串口的奇怪问题

计算机串口接收到的51发送的数据,很奇怪! 高4字节都比在51 ROM中的数据大4, 每次PC读进数据都要减4才能与51中的一样,真是莫名奇妙!…

查看全部问答>

开关电源测试方案

 开关电源因其效率高,体积小而被电子企业广泛应用,以下是自己在工作中总结出来的测试方法和测试项目,在电源设计时若能充分考虑到这些方面,那么其产品将会被越来越多的客户所使用。现在的电子产品对电源的要求有所提高,大部分是关心其稳定 ...…

查看全部问答>