你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】STM32F10x远程升级方式(IAP)

[复制链接]
spyglass 提问时间:2014-4-9 16:30 /
 
IAP(In Application Programming)即在应用编程,也就是在原程序运行中,接收新的程序代码,写入程序ROM中,再跳转进入新的运行。
 
具体说,一般分为三个部分区域:(2个程序3个空间)
引导部分BOOT
应用部分APP
应用缓冲APPBUFF
 
方式一、如果APP比较大,要占用大部分ROM空间,只能如下安排ROM空间。
 
            APP
            
             
             
            0x800n000
            
            BOOT
            
             
            0x8000000
            

APPBUFF放在片外存储器中。
 
 
方式二、如果APP小于(1/2 ROM + BOOT),可作下面安排。
 
            APPBUFF
            
             
             
            0x80m0000
            
            APP
            
             
             
            0x800n000
            
            BOOT
            
             
            0x8000000
            

 
 
 
 
 
 
 
 
 
不需要片外存储器
 
 
升级流程:方式一为例
接收新的代码1 ,放入APPBUFF中,接收代码2,放入… , 接收完n,全部代码正确后,设置一个不挥发的新代码标志,重新启动(也可跳转进入boot)。进入BOOT后,检查新代码标志,没有,直接跳转到APP应用中。有,擦除APP区域ROM,把APPBUFF内容复制到APP中,正确完成后,不挥发的新代码标志写入为完成标志,跳转到APP应用中运行,升级完成。
 
注意不挥发3个字,防止意外断电,引发失败。
BOOT原则是要小。
 
方式二升级流程大同小异。但也有人这么用:APP => APP1,  APPBUFF => APP2。也就是有2个运行区,如果当前运行区是APP1,APP2就是BUFF,新代码直接放入APP2,正确后,把当前运行区调整到APP2,跳转到APP2运行,此后APP1就是BUFF。2个区域轮转。
 
方式没有好坏之分,合适使用是上策。
 
 
为了防止失败,除了断电,还有一些细节需要注意的。
新代码是否是你家的?
新代码是否有破损?
新代码是否超重?
升级期间,狗狗有吃的吗?
升级期间,中断宝宝睡觉了没有?

 
 
有一说法:细节决定成败。
 
 
跳转代码:
typedef void (*pFunction)(void);
u32 JumpAddress;
pFunction Jump_To_Application; 
 
 
 JumpAddress= *(uint32_t*)( APP_0_ADDR+4);
 Jump_To_Application = (pFunction) JumpAddress;
   __set_MSP(*(uint32_t*) APP_0_ADDR);
 Jump_To_Application(); 
 
 
APP_0_ADDR是APP程序的首地址;
__set_MSP()是原厂库文件core_cm3.c中函数
 
若有不明白的地方,参考原厂的应用笔记AN2557文档。
 
收藏 2 评论3 发布时间:2014-4-9 16:30

举报

3个回答
abb200628 回答时间:2015-2-2 13:10:09
不错,学习一下
stary666 回答时间:2015-2-5 00:11:03
AnnaLi 回答时间:2015-2-5 07:26:55
接收新的代码1 ,放入APPBUFF中,这部分能描述的详细一点吗?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版