OpenEdv-开源电子网

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

远程更新mcu

[复制链接]

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
发表于 2018-7-20 10:26:40 | 显示全部楼层 |阅读模式
15金钱
如何通过GPRS 远程更新stm32的程序,求具体方案步骤

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-7-20 13:15:23 | 显示全部楼层
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4731
金钱
4731
注册时间
2015-1-10
在线时间
591 小时
发表于 2018-7-20 13:46:04 | 显示全部楼层
IAP,就跟串口更新一样啊,你用GPRS还不是用串口,主程序检索GPRS指令,收到更新指令后跳转进loader
回复

使用道具 举报

1

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1954
金钱
1954
注册时间
2013-10-7
在线时间
322 小时
发表于 2018-7-20 14:22:44 | 显示全部楼层
顶,IAP大法好
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2018-7-20 15:43:59 来自手机 | 显示全部楼层
直接按照串口升级的都是不懂的,实际做出来的都是一堆坑
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-7-20 15:53:59 | 显示全部楼层
阿侑kevin 发表于 2018-7-20 13:46
IAP,就跟串口更新一样啊,你用GPRS还不是用串口,主程序检索GPRS指令,收到更新指令后跳转进loader

我在网上有看到一篇论文是要先烧录IAP引导程序,GPRS与中转服务器相连,然后使用在线升级上位机客户端软件通过以太网连接中转服务器传送应用程序,但是我不理解GPRS如何与数据中转服务器连接,客户端软件又如何传送应用程序
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-7-20 16:24:12 | 显示全部楼层
yklstudent 发表于 2018-7-20 15:43
直接按照串口升级的都是不懂的,实际做出来的都是一堆坑

论坛元老,有做过远程更新吗?求赐教
回复

使用道具 举报

62

主题

902

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3559
金钱
3559
注册时间
2016-1-8
在线时间
543 小时
发表于 2018-7-20 16:27:44 | 显示全部楼层
拿来主义
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
224
金钱
224
注册时间
2016-9-14
在线时间
32 小时
发表于 2018-7-21 14:45:07 | 显示全部楼层
如何拿来
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-7-25 10:26:40 | 显示全部楼层
这两天都在研究STM32 IAP+GPRS远程升级方案,但是还是云里雾里的,还有很多问题,求各位大神解答:Q1:内部flash的空间如何分配;Q2:IAP程序与用户程序如何下载;Q3:GPRS怎么与STM32板子相连;Q4:bin文件怎么传送到GPRS。
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4731
金钱
4731
注册时间
2015-1-10
在线时间
591 小时
发表于 2018-7-25 13:47:24 | 显示全部楼层
依然依然1356 发表于 2018-7-20 15:53
我在网上有看到一篇论文是要先烧录IAP引导程序,GPRS与中转服务器相连,然后使用在线升级上位机客户端软 ...

= =没这么麻烦啊,IAP用串口,你的远程升级就只是多加了个GPRS啊,说白了还是串口,GPRS只是实现你的远程而已,例程里面是上位机软件读入需要升级的bin,然后通过串口发给单片机,你现在需要做的就是上位机软件读入需要升级的bin,然后交由上位机端的GPRS发送,单片机端的GPRS接收,然后再给单片机处理就可以了啊
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4731
金钱
4731
注册时间
2015-1-10
在线时间
591 小时
发表于 2018-7-25 13:49:04 | 显示全部楼层
依然依然1356 发表于 2018-7-25 10:26
这两天都在研究STM32 IAP+GPRS远程升级方案,但是还是云里雾里的,还有很多问题,求各位大神解答:Q1:内部 ...

这几个问题在原子哥的例程说明里面就写得很明白了,多花点时间消化
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-7-25 16:09:00 | 显示全部楼层
本帖最后由 林光华ing 于 2018-7-25 16:10 编辑

BIN文件就是一堆二进制数据,按照串口IAP的原理做就行。
需要注意的是,远程更新,很有可能更新一半断开了,所以最好要让程序在FLASH里有个备份。开始更新时,设一个标志,更新后再改变标志。
也就是说,flash里其实除了有bootloader,还需要有两个同样的APP和一个标志位。
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-25 16:50:42 | 显示全部楼层
将stm32工程生成的bin文件或者hex文件用内部库中的flash命令拷到flash中不是好了?

GPRS无线传输的话     传送端将bin或者hex转码发送,加上crc校验
接收端接收并解码,将flash前面一小断空间用作bootloader,bootloader的任务是将无线接收到的解码后的hex或者bin文件用内部库的flash命令拷到相应的flash位置中,flash后面一部分存储应用层程序,bootloader还有一个功能是跳转到应用层程序,这是最基本的两个功能

注意flash这样分配的话,得重映射一下中断向量表

还有各个系列程序开始的位置是不同的,貌似F0是0x08004000,F1是0x08001800,注意不要把应用层程序拷错位置了
猪猪熊呢?
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-7-31 14:48:30 | 显示全部楼层
我在正点原子的资料上看到串口IAP的程序,但是在IAP代码段只有跳转到APP程序,不知道是否还需要添加擦除flash的一些程序?
另一个问题:正点源代码上写的flash APP的空间大小是0x8010000-0x8040000,SRAM APP的空间大小是0x2001000-0x200b000,那么BootLoader的空间大小我应该设置成多大呢
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-8-2 11:33:51 | 显示全部楼层
123.png 1234.png IAP程序已经写好,但是将我的APP程序通过串口烧录进去之后没办法执行,我检查后发现是卡在了APP程序中的定时器那里,这样如何解决呢
回复

使用道具 举报

4

主题

98

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2018-6-27
在线时间
45 小时
发表于 2018-8-2 16:13:09 | 显示全部楼层
有完整的代码吗?
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-8-3 14:36:33 | 显示全部楼层
kit7828 发表于 2018-8-2 16:13
有完整的代码吗?

不能贴,属于公司机密,只能贴卡死的这一点,不知道为什么会卡在这里。
回复

使用道具 举报

8

主题

550

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2861
金钱
2861
注册时间
2016-5-13
在线时间
180 小时
发表于 2018-8-3 14:47:49 | 显示全部楼层
GPRS模块是通过串口和stm32连接的就用串口的IAP修改下通信协议就ok了啊。通信协议可以自己定义的。
回复

使用道具 举报

8

主题

550

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2861
金钱
2861
注册时间
2016-5-13
在线时间
180 小时
发表于 2018-8-3 14:54:29 | 显示全部楼层
依然依然1356 发表于 2018-8-2 11:33
IAP程序已经写好,但是将我的APP程序通过串口烧录进去之后没办法执行,我检查后发现是卡在了APP程序中的定 ...

跳转之前把所有的中断都关闭了。
虽然不明白你们在说什么,但感觉很厉害的样子。
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-8-3 15:32:38 | 显示全部楼层
其实很简单,就是串口iap,
回复

使用道具 举报

20

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
605
金钱
605
注册时间
2017-7-14
在线时间
116 小时
发表于 2018-8-3 15:35:36 | 显示全部楼层
万变不离IAP,2楼讲得好啊
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-8-8 09:23:38 | 显示全部楼层
电脑小白 发表于 2018-8-3 14:54
跳转之前把所有的中断都关闭了。

是将IAP中的中断关闭吗?
回复

使用道具 举报

8

主题

550

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2861
金钱
2861
注册时间
2016-5-13
在线时间
180 小时
发表于 2018-8-8 09:56:40 | 显示全部楼层
本帖最后由 电脑小白 于 2018-8-8 09:57 编辑
依然依然1356 发表于 2018-8-8 09:23
是将IAP中的中断关闭吗?

把IAP中所有的中断都关闭了。
虽然不明白你们在说什么,但感觉很厉害的样子。
回复

使用道具 举报

11

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-12-21
在线时间
30 小时
 楼主| 发表于 2018-8-11 11:50:57 | 显示全部楼层
电脑小白 发表于 2018-8-8 09:56
把IAP中所有的中断都关闭了。

现在通过串口IAP传送已经可以实现,但是应该选择什么模块来将电脑终端的bin文件传送到MCU呢,我有在网上找过一些G510模块,但是客服说无法使用,求大神指点。
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-11 13:03:40 | 显示全部楼层
原子的LORA 无线串口 了解一下
猪猪熊呢?
回复

使用道具 举报

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2022-2-21
在线时间
74 小时
发表于 2022-6-26 11:27:45 | 显示全部楼层
能通信就能升级,

boot+app1+App2模式
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 19:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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