OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12450|回复: 16

STM32串口IAP远程升级程序的简单练习

[复制链接]

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2020-8-20 09:51:07 | 显示全部楼层 |阅读模式
上一篇提问的帖子:http://www.openedv.com/forum.php?mod=viewthread&tid=315745&extra=page%3D1


首先是实现的思路:
①写一个bootloader函数负责跳转到app
②需要一个flag存在flash中,用于指示是否需要更新
③flash空间足够,所以直接设置两个app区域,分别称为app1和app2
④bootloader负责根据flag跳转到对应的app执行
⑤app1/2通过串口接收程序数据并写入app2/1的区域,并更新flag
代码见IAR工程。


然后是操作要点:
①必须在代码中设置对应的中断向量表偏移量。
②串口数据按8位操作,flash数据按16位操作,需要转化,注意高低位。
③flash操作之前先执行unlock。
④串口发送的app数据一定要严格对应更新区域(建两个独立的工程)。比如当前执行的是app1,那么一定要发送app2到串口进行更新。
⑤第一次下载时设置flag值然后重新下载正常的bootloader。
⑥通过串口发送.bin格式的二进制文件,各IDE有对应的生成方式。


本次练习只是熟悉IAP原理,其中只包含了最基本的操作。后续可按照如下条目逐一优化,最终形成一个完备的IAP远程升级程序。
①对接收到的程序数据做校验。
②bootloader本身增加串口代码,新程序一律通过串口接收并写入flash。
③不使用app1和app2两个程序,只保留app1,app2区域用作暂存更新后的程序。复位后将app2复制到app1再执行。


欢迎各位交流相关经验,指导一二。
APP1.zip (5.08 MB, 下载次数: 664)
世界和平
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2020-7-2
在线时间
11 小时
发表于 2020-8-20 14:54:10 | 显示全部楼层
回复 支持 反对

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
 楼主| 发表于 2020-8-21 15:04:36 | 显示全部楼层

过奖了
世界和平
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2020-9-5
在线时间
1 小时
发表于 2020-9-5 10:14:00 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-9-21
在线时间
32 小时
发表于 2020-9-10 10:24:58 | 显示全部楼层
好东西,谢谢老哥
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-4-15
在线时间
5 小时
发表于 2020-9-11 11:44:30 | 显示全部楼层
这是什么文件,为什么不能以工程的形式打开?
回复 支持 反对

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
 楼主| 发表于 2020-10-15 11:33:36 | 显示全部楼层
QIUDASHAN 发表于 2020-9-11 11:44
这是什么文件,为什么不能以工程的形式打开?

这是压缩包,解压之后用IAR打开即可。
世界和平
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2019-2-18
在线时间
35 小时
发表于 2020-10-19 10:48:46 | 显示全部楼层
在做这个远程升级的功能,向大佬学习一下
回复 支持 反对

使用道具 举报

57

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2013-5-23
在线时间
46 小时
发表于 2021-1-27 13:12:02 | 显示全部楼层
学习下............
回复 支持 反对

使用道具 举报

7

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-9-6
在线时间
35 小时
发表于 2021-9-13 14:34:42 | 显示全部楼层
有没有KEIL  的 这三个工程文件,方便发一下吗  
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-1-5
在线时间
3 小时
发表于 2021-11-6 17:29:48 | 显示全部楼层
感谢楼主分享,好人啊
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2016-3-4
在线时间
14 小时
发表于 2022-8-12 08:44:16 | 显示全部楼层
赞赞赞赞赞赞
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2021-12-17
在线时间
26 小时
发表于 2022-11-18 12:09:41 来自手机 | 显示全部楼层
顶楼主
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2021-12-17
在线时间
26 小时
发表于 2022-11-25 10:15:45 来自手机 | 显示全部楼层
感谢楼主分享,很有用
回复 支持 反对

使用道具 举报

17

主题

161

帖子

0

精华

高级会员

Rank: 4

积分
955
金钱
955
注册时间
2022-7-21
在线时间
446 小时
发表于 2023-2-15 11:55:54 | 显示全部楼层
6啊老哥,讲得详细
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2020-6-11
在线时间
38 小时
发表于 2023-9-27 10:07:24 | 显示全部楼层
枫叶hk 发表于 2021-9-13 14:34
有没有KEIL  的 这三个工程文件,方便发一下吗

哥们有KEIL工程关于这方面的资料吗
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2023-7-6
在线时间
16 小时
发表于 2023-10-3 13:52:05 | 显示全部楼层
学习一下远程升级
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表