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

STM32G0 IAP

[复制链接]
攻城狮Melo 发布时间:2022-11-3 22:09
bootloader篇:
' M0 I1 z. W! Z( v5 a, O8 }4 x  a- F简要说明, ]3 e6 @6 F, S* q# K
这里没有什么特殊的要求,
( m; D. f- t, v/ I9 b) e一般含有:解析接收到的数据(可能是ymodem等等)、擦写app区域的flash,跳转等
  J& }$ q$ N5 T2 o* Z) L2 G一般会保存在0x0800 0000起始的一段地址中(上电后直接运行),0 U7 k( n) U' z$ F  g0 |
其中解析和擦写flash掠过
3 @0 [9 y! c" y9 V7 }% L3 v: C7 ~
0 y& B" i6 j- E  ^/ J, ?跳转代码如下:
  1. __disable_irq();
    ! X) t! `. h' y6 W, R3 u
  2.       /* Test if user code is programmed starting from address "APPLICATION_ADDRESS" */
    ( k" E: n9 i+ ?
  3.     if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000)- o  ]# C6 x- v% q+ T9 s7 W6 @
  4.     {8 V& G: N; o1 L: W
  5.       /* Jump to user application */
    5 p' U' A' D( V$ F' V7 P8 |
  6.       JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);* j  J( k, \+ M
  7.       JumpToApplication = (pFunction) JumpAddress;
    4 O3 @7 a/ E# G& A  f6 B0 x0 i6 c
  8.       /* Initialize user application's Stack Pointer */; ^1 d% I% L: m' i, |8 l7 a
  9.       __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);
    : N4 \, M  S' _/ k  y# I
  10.       JumpToApplication();  V4 C6 B8 c+ p
  11.     }* |# Z: X8 T/ T- z
复制代码

: c( i, {: F' I2 r上文中APPLICATION_ADDRESS是APP的起始地址,跳转之前关闭总中断,防止跳转时出错. H0 i+ j+ I5 T  P7 j# i% X( b
要注意,在APP里不要忘记打开总中断。
# H. d/ a% V8 [; D' [
" b1 A6 ~# R% p$ A# aAPP篇
$ e! f% ]7 y* A. ?6 Z以MDK为例
8 D, ]" w) N* R. b: A5 b! u/ ?6 ~6 a& x+ Y
修改FLASH地址
5 F( N4 z- G; S# o8 I3 M4 |5 g
2 j$ C7 r" p1 y+ e: n% I 20210108105923339.png
4 D$ U9 o; S4 q6 s8 t. ?$ ~9 T1 i# P9 m+ m: @3 D
代码上修改中断向量表偏移
! w+ e% ]3 g8 z6 p文件system_stm32g0xx.c中/ \( \# p# f4 }8 I9 z2 f
  1. #define VECT_TAB_OFFSET  0x5000U /*!< Vector Table base offset field./ a6 b) k' H0 P% e) ^( q5 `
  2.                                    This value must be a multiple of 0x100. */
复制代码

& e. n7 l) z6 q- e% ^; x2 Z此处改成实际偏移大小0 W; S( X& R) s; l( Y9 C8 _

  @  `4 V, G5 i# i- U+ V/ |还有就是BOOT篇中说的,要开启全局中断哦$ }* H; M3 E' C( ~% t3 k* j
  1. __enable_irq();
复制代码
————————————————0 l5 @; w9 X) e% ?4 E
版权声明:Logan Li
' v. L* @. g( n7 R( d" C
- v5 H2 o/ N; `8 a0 B
收藏 评论1 发布时间:2022-11-3 22:09

举报

1个回答
Roomen 回答时间:2022-11-4 16:00:45
文章出处 STM32G0 IAP

所属标签

相似技术帖

官网相关资源

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