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

STM32G0 IAP

[复制链接]
攻城狮Melo 发布时间:2022-11-3 22:09
bootloader篇:- g9 }2 l/ C  F7 o- V& A5 ]( b* ^
简要说明0 V' _% K& z3 }0 j/ y# R9 Q
这里没有什么特殊的要求,
' y7 ]2 t: C. b" h* x7 J1 t一般含有:解析接收到的数据(可能是ymodem等等)、擦写app区域的flash,跳转等: Z) C; h+ V! O4 G+ J0 h+ ]) V
一般会保存在0x0800 0000起始的一段地址中(上电后直接运行),
  b- V* O2 u2 Z# j; O: x其中解析和擦写flash掠过. ]- p! j9 K( b

" U0 P. k/ X0 D跳转代码如下:
  1. __disable_irq();
    1 Q+ m* D* |* G# |1 i$ @" _1 n
  2.       /* Test if user code is programmed starting from address "APPLICATION_ADDRESS" */: s; C% ], X" j" v. _
  3.     if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
    ) O- ?8 H0 ]# e; N
  4.     {4 H, m0 B* ?9 E0 \& q- W
  5.       /* Jump to user application */
    1 X7 c6 z  x- n' ^5 m3 y: ~5 H
  6.       JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);
    9 D6 R0 ^1 H$ Z! y0 J- D
  7.       JumpToApplication = (pFunction) JumpAddress;
    % b! J% K0 {1 q5 D9 ~8 I
  8.       /* Initialize user application's Stack Pointer */
    1 U8 b7 c9 v  W9 L7 f! L
  9.       __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);% |3 z8 p4 M# g9 t# k
  10.       JumpToApplication();
    / {; r+ Q% g  b6 _* R
  11.     }1 i! t8 m' P* `2 q* V0 m' I
复制代码

* U. r* @+ D: C" G! d上文中APPLICATION_ADDRESS是APP的起始地址,跳转之前关闭总中断,防止跳转时出错
# Z. s! C% B* ?5 g. s* L要注意,在APP里不要忘记打开总中断。( q7 W. c* c2 S7 v

8 f3 A. T6 P1 m" C$ ]! Q3 UAPP篇  D% a- M) A: v5 n( O
以MDK为例2 t0 x/ N- ?) n# j
5 O1 ^3 c8 m4 R
修改FLASH地址
  _( X' c" a# w3 n; H/ Z8 {
8 A' ?. a! W7 s1 a 20210108105923339.png
1 }  d, k+ d7 x9 [" F
0 I1 s' d9 b+ |; I6 i代码上修改中断向量表偏移0 x1 Q" Q6 v/ ]7 `% p
文件system_stm32g0xx.c中' p7 N6 [' B; H
  1. #define VECT_TAB_OFFSET  0x5000U /*!< Vector Table base offset field.5 D% o/ Z( W$ `" h+ g! b
  2.                                    This value must be a multiple of 0x100. */
复制代码
4 D) h# D9 o4 E* g
此处改成实际偏移大小4 A6 ]; e5 _* A+ n$ I0 V
( U5 f  A4 z, H
还有就是BOOT篇中说的,要开启全局中断哦
) H: M( Y% O8 s/ y; t8 R+ c1 w9 `
  1. __enable_irq();
复制代码
————————————————' ?" d6 G  V1 Y8 j$ I2 ~
版权声明:Logan Li
: P2 X/ r( q( g# t2 \5 n2 U7 m/ q, i4 K
收藏 评论1 发布时间:2022-11-3 22:09

举报

1个回答
Roomen 回答时间:2022-11-4 16:00:45
文章出处 STM32G0 IAP
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版