TI中文支持网
TI专业的中文技术问题搜集分享网站

使用外挂flash对MSP430F2272刷程序失败

你好,我们一直在用MSP430F2272,现在因为程序量增大并且需要定时对MCU进行程序升级,我们外挂了一颗flash来存放新程序代码。我们在MSP430F2272地址f800处写了一段代码,专门用来升级。进入升级代码就关掉中断,看门狗。每次更新到地址0XCC00的时候出错(这时还剩最后1K的编译代码量了)。擦除0XCC00开始空间512B没问题(每次只能擦出512个字节,这是MCU决定的),但是写第二个字节程序就飞了,像是MCU被复位,每次都在同一个位置发生异常。请帮忙分析并指导一下是什么原因?我们需要怎么操作?谢谢。

灰小子:

你外挂的flash是什么型号?和msp430如何连接的?

0XCC00是msp430的地址还是外挂flash的地址?

Yulei Wang:

回复 灰小子:

外挂Flash型号是25Q16 ,通信方式SPI。用来存数据的、更新代码,更新代码时读取25Q16数据写进430的Flash空间。从而达到更新OTA目的。0XCC00是MSP430F2272的地址。

灰小子:

回复 Yulei Wang:

你是如何控制升级逻辑的?怀疑0XCC00处有正在执行的代码

Susan Yang:

回复 Yulei Wang:

这个和TI的一个相关文档很类似 Over-the-Air (OTA) Update With the MSP430FR57xx

文档主要是无线CC1111的方式来升级,CC1111和MSP430也是利用SPI来进行通信的。您可以看一下 www.ti.com/…/slaa511a.pdf

E2E论坛上也有类似的帖子:
e2e.ti.com/…/502816

Yulei Wang:

回复 Susan Yang:

你好,我们没有通过无线的方式来对MSP430F2272做空中升级,而是引导程序先擦除MSP430F2272内部的代码,然后把外挂flash中的代码写入MSP430F2272内部flash同样的地址空间。我们已经确认更新的代码本身是OK的,可以运行。但是在擦除APP FLASH空间,把更新的代码全部写入MSP430F2272(已确认全部写完了,地址也是对的),执行完升级区程序,准备跳转时发现子程序退不出来,抓到几条汇编代码看到出栈代码被清除成FF,如下面截图所示。请问该问题怎么解决?

赞(0)
未经允许不得转载:TI中文支持网 » 使用外挂flash对MSP430F2272刷程序失败
分享到: 更多 (0)