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

STM32 IAP实现流程

[复制链接]
feixiang20 发布时间:2017-5-22 09:51
STM32 IAP 研究设计1. 概念
3 s8 j" z( N+ J9 ^: i3 nIAP:In-Application Programming”,中文解释为“在程序中编程”。ICP(In-Circuit Programming)技术即通过在线仿真器对单片机进行程序烧写,而ISP技术则是通过单片机内置的bootloader程序引导的烧写技术。( _5 o2 y/ w7 _, o# M* e" A
2. 框架设计
: e& @& f- T: N简要说明: 将STM32 的Flash 512Kb 分为两个部分,一个256Kb 用来存放最小系统,一个256Kb用来存放APP代码。具体最小系统与APP的Flash大小可根据实际情况调整。
! _1 S. e6 i& t难点解析:! }5 _& {  {3 k# K
最小系统与APP的存放地址+ l: Y2 S* d7 T$ [
要找到最小系统与APP的存放地址,那么就需要了解STM32的Flash存储空间,如下: 7 s2 R2 }% _' F! U. P/ W) E

7 ^+ L) K6 m1 B3 ^: i3 Q$ U. e最小系统与APP的跳转
% \4 G  R; y; ^- V5 t- s系统启动之后首先进入最小系统,这是由硬件决定的,进入最小系统之后,再判断APP系统烧录的地址的栈顶指针是否正确来判断是否烧录了APP,启动APP。官方例程代码如下:$ \% n) e! C7 r7 O+ _7 k
/* Test if user code is programmed starting from address "ApplicationAddress" */if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000){   /* Jump to user application */  JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);  Jump_To_Application = (pFunction) JumpAddress;  /* Initialize user application's Stack Pointer */  __set_MSP(*(__IO uint32_t*) ApplicationAddress);  Jump_To_Application();}
/ R0 M, ?' ^3 W9 p0 y上面这个是第一种方法,还有第二种方法是:在将APP程序写入Flash后在Flash中写入相关信息,最小系统程序不断检测读取该信息,如读到该信息则写一个标志位到SRAM中,重启MCU,剩下的同样利用上面的代码,只不过判断条件改为SRAM中的标志位了。
, v% J5 F# a# \! _2 U0 j启动顺序 0 ^" ?5 G+ z2 f+ N7 U
关于启动顺序,网上有比较详细的说明2 A% d6 n  N" [, c
没有使用IAP的
) {& J4 K& z/ U. F8 W% M/ ~2 k: [; p' d( G
使用IAP的
& F0 N3 G( d5 r& I& ^7 H5 ^' n' i) ~5 D
最小系统与APP的编译
+ q6 C/ b& b0 o# r" _! ?最小系统的编译直接按照正常的工程编译就行,而APP的编译则需要特殊处理:keil中设置如下: " B% ^% P% Z( m$ X
6 c0 L6 O5 w# G
上面这个是针对程序的存放的Flash地址的,还需要对中断向量表进行重地位,可使用函数
, l% j. E* E' a( uvoid NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset); / i* e0 i! P2 {" F! c- s* s1 P
在APP main函数中调用该函数设置偏移量,偏移量要等与程序 Flash相等的偏移量5 f, ^: `7 m0 W8 E) f
5 M- V+ \: u, [8 x
收藏 评论1 发布时间:2017-5-22 09:51

举报

1个回答
衔胆栖冰 回答时间:2017-5-22 11:49:46
IAP:In-Application Programming”,中文解释为“在程序中编程”。-------我一直以为中文是“在应用编程”
- l* r5 L" T3 ^$ A楼主的方法不错。我一般直接flash的首地址,然后再把升级文件写到那去,写完reset。还有借用官方BootLoader的。

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版