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

【经验分享】STM32如何烧写多个HEX固件

[复制链接]
STMCU小助手 发布时间:2022-3-16 10:41
为满足日常开发需求,现在很多情况下一个片子需要通过BootLoader和Application两段程序组成。
- j2 R1 s4 P& m% \
0 {+ a! I; V$ }: l5 wBootloader:一般用作用户升级Application用户程序用,程序的起始地址为:0x08000000,当遇到Application程序有更新的情况下,可以很方便和友好的通过BootLoader程序来对其进行更新。Bootloader更新Application的方式和途径有很多,比如串口的IAP、U盘的IAP等等,本人常用U盘进行升级。
$ r* _# y. N2 c' k: o. L- T0 p9 Y1 ^+ p4 v, n
Application:用户程序。一般起始地址并不是再0x08000000。1 P* L( b& [9 e1 \) x+ _; c

: L/ p8 G9 W& ?3 ^6 B; o调试烧写hex固件的方式我一般选择的是Jflash,方式也很多,比如,Stlink的烧写软件,串口的烧写软件(MCUISP挺好用)等等。1 s* K3 |7 ~1 ]4 d# C' q, r% h

0 k8 C/ z+ _' G; l4 ?7 C" d第一步:将多个HEX文件合并成一个HEX文件。
% _- p0 W9 ~8 R" S$ Q2 |0 S
: U; H7 N/ |' H( s% e  Z. |7 T这里以两个HEX为例,其中一个为BootLoader,另一个为Application。2 B8 V7 |$ T9 a" l
& C& e# r% v5 }0 ?+ e6 X7 r5 c1 i7 w
1.新建一个文本文档,并命名成XXX.hex
0 T. ]4 X8 X+ C# v
' g! Q- w8 Q* p9 ~- V% Z2.通过各种编辑器分别打开BootLoader.hex、Application.hex和XXX.hex。我这里用的是notepad++。" f3 o" u+ g/ g% a- ]
4 L1 b9 X% r0 U7 k
3.把Bootloader里面的内容全部复制到XXX.hex中
/ z8 E# l1 x) K2 K3 \, ^' H
4 x$ J; Q" Y8 J$ H# T& q) G4.删除XXX.hex中的最后一行(:00000001FF)
8 l4 h/ K( m# Z0 K! U* u- p' b  o& }4 t* B) s8 y: y5 k  E
5.将Application.hex中的内容全部复制并添加到XXX.hex的结尾
: M1 u* S: x- d4 U9 z! P4 v2 O! q/ H+ u3 p! n
6.保存,此时的XXX.hex文件就是一个合并了Bootloader和Application的固件。8 A- h! E6 n( H2 \! h( a( c: k: I' p

3 n4 k$ ?: B/ T1 P7 L! }第二步:烧写固件+ p; m: S/ U! n& G& u2 n6 K

$ P' M  Q, j# S& k8 c% z2 O烧写固件比较简单,但是要注意两个hex的文件要确保烧写的地址。% R; {# r" A/ s1 e" @  _3 z4 h

( O& M, ~  E$ ^! U! l, ]
: l& i- k( c% P0 O9 n
赞 收藏 评论0 发布时间:2022-3-16 10:41

举报

0个回答

所属标签

相似技术帖

官网相关资源

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