求教ARM-STM32F自制远程升级程序的方法

[复制链接]
5710|5
 楼主| qif2000 发表于 2008-5-14 17:04 | 显示全部楼层 |阅读模式
我正在准备使用STM32F101C8T6做一款终端产品,是通过GPRS方式1点对多点通讯的,现在由于客户的要求经常有改变,不能总去现场用下载器给升级程序啊。想给STM32远程升级程序,现在不知道怎么去做,请各位大侠指点一下。<br />目前,我能想到的是,在我的GPRS的设备上做ISP下载程序,给终端设备上的STM32升级程序,但这样做,GPRS那个设备我们改动起来比较麻烦。<br />另外一种设想是,先把程序下载到终端板上,保存到外部FLASH里,然后STM32校验OK后,进入怎么个状态,再STM32自己给自己的内部FLASH更新程序??这种方法是否可行?
akk2006 发表于 2008-5-18 20:23 | 显示全部楼层

楼上的方式是一种相当安全可靠的方式

  
multiice 发表于 2008-5-21 20:33 | 显示全部楼层

一定要做双备份

可以这样,boot+APP1+APP2,<br />APP1和APP2代码是一样的,在boot代码段对APP1和APP2进行CCR校验,
multiice 发表于 2008-5-21 20:39 | 显示全部楼层

升级数据下载到APP2区

如果APP2的时间标记比APP1新,而且CRC正确,则用APP2内容覆盖APP1内容,实现升级。<br />万一升级过程失败,在BOOT阶段,检查APP1的CRC通不过的,则用APP2内容再次重新覆盖。<br />这样基本可以确保程序不会因为升级过程异常而丢失程序。
 楼主| qif2000 发表于 2008-5-24 17:11 | 显示全部楼层

谢3楼大侠支招

按你的建议,是在芯片内部的FLASH中开两个区?<br />我之前考虑的是,下载的程序放到片外的数据FLASH中,用它来对片内的程序FLASH更新下载。应该差不多吧
LUCONGWEN 发表于 2010-9-7 15:13 | 显示全部楼层
stm32的flash地址开始的地方,要放置中断向量,APP1和APP2的中断函数地址可能不一样的,怎么处理呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部