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

【经验分享】什么是STM32的ISP?

[复制链接]
STMCU小助手 发布时间:2022-1-26 23:19
ISP方式下载程序原理
ISP:In System Programing,在系统中编程
在STM32F10xxx里有三种启动方式:

; b0 [8 a9 V, E1 ]* {) Z" l7 n
1331311-20190918084338873-729733892.png
4 B$ W  e# ^8 A
以ISP方式下载程序时需要把STM32的BOOT0引脚置1、BOOT1引脚置0,即从系统存储区(System Memory)启动。为什么设置从System Memory启动就可以使用串口来下载我们的程序呢?那是因为在芯片出厂前ST官方已经把一段自举程序(BootLoader程序)固化到这一块存储区。对于STM32F103ZET6来说,System Memory的起始地址为0x1FFFF000,可在芯片手册的内存映射图里找到:
# D6 a: N4 ~) y7 i% P- ?& W
1331311-20190918084346296-1285924884.png

% x( e/ |& V, D0 |
其通过串口来接收数据并烧写到用户闪存存储器的起始地址(0x08000000)。只能烧写到这个地址,若keil里设置的地址不是这个地址,则编译出来的文件将烧录不成功。
用户闪存,即User Flash,同时也称为Main Flash。
这一段BootLoader程序源码是没有开源出来的,用户是不可修改的。我们在上一篇笔记的IAP实验中,IAP程序通过FlyMCU软件进行烧录,烧录的地址就是0x08000000。
注意:不同系列不同型号的STM32固化的BootLoader是不同的,即使用的通讯接口是不同的。如STM32F1xxx系列只支持USART1:
. y6 P. u; l" i; t" g
1331311-20190918084353347-942606800.png
9 ]! P) b; k' `. b5 T3 G
STM32F4xxx系列只支持USART1、USART3、CAN2等接口:
9 k( p' t" j9 z; Q8 m) k0 B" d: n
1331311-20190918084401779-87464160.png
# R4 R7 R) _& K8 O/ S
' m9 J0 u! g$ `1 f. O
这里,关于数据协议的内容不展开讨论,有兴趣的朋友可自行研究。
IAP程序与ISP程序有什么不同?
从基本功能来看,IAP程序与ISP程序所做的事情好像是一样的,都是引导加载程序,所以网上有很多文章把IAP程序与ISP程序都称为BootLoader程序,要注意区分。但是,ISP与IAP还是有点区别的。
STM32内部Flash分为两部分,System Flash和User Flash。上电之后执行哪个Flash里的程序有boot脚来控制。
System Flash内存放的是ST官方编写的自举程序(ISP程序),我们是没有办法改变的。
User Flash是我们可以使用的Flash空间,我们编写的代码就是要烧录到User Flash中。我们可以把User Flash分为两部分,前面一部分空间用于烧写我们编写的IAP程序,后面一部分用于烧写我们编写的应用程序。其中,IAP程序用于更新我们的应用程序。
ISP程序用于把我们编写的程序更新到0x08000000地址上,如果我们的产品中的程序有IAP程序+应用程序,则此时0x08000000地址存放的程序就是IAP程序。ISP程序、IAP程序、应用程序的关系示意图如下:

3 C& G! j( D$ x3 D9 T% {5 K
1331311-20190918084414543-1230220363.png

( ~: O  M; O& }& p8 X3 ^
如果我们的产品中的程序只有应用程序,则此时0x08000000地址存放的程序就是应用程序。ISP程序、应用程序的关系示意图如下:
7 z3 V$ a! {0 v. e& X. v' r* F7 t5 y
1331311-20190918084422376-1307700807.png
* H3 [- a2 E! V0 [( @+ j
赞 收藏 评论0 发布时间:2022-1-26 23:19

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版