OpenEdv-开源电子网

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

远程升级的时候,单片机上做的是乒乓下载,服务器上是不是要编译两个下载镜像?

[复制链接]

17

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2013-9-4
在线时间
18 小时
发表于 2015-9-11 12:45:02 | 显示全部楼层 |阅读模式
5金钱

远程升级的时候,单片机上做的是乒乓下载,(程序在A区运行,服务器下发B区升级代码写到B区、程序在B区运行,服务器下发A区升级代码写到A区
服务器上是不是要编译两个下载镜像?

还有一种办法是固定升级A区,服务器上只有一个A区镜像,B区做为备份,A区一直运行,升级命令到来,先跳到B区,再写A区。这样就算失败,还有B区的可以运行。

有没有更好的办法。

多谢各位

最佳答案

查看完整内容[请看2#楼]

主程序在APP1运行,先下载回来保存在APP2,然后跳转到boot。 让其它自宫掉APP1,把APP2烧写过来。 另外,存储区那么大做什么用的?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2015-9-11 12:45:03 | 显示全部楼层
主程序在APP1运行,先下载回来保存在APP2,然后跳转到boot。
让其它自宫掉APP1,把APP2烧写过来。

另外,存储区那么大做什么用的?
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-9-11 13:30:58 | 显示全部楼层
你分  A B C 三个区好了


A - 永不变 作为bootloader

B - 运行区及升级区

C - 备份区
学无止境
回复

使用道具 举报

17

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2013-9-4
在线时间
18 小时
 楼主| 发表于 2015-9-11 13:40:05 | 显示全部楼层
回复【2楼】jermy_z:
---------------------------------
多谢,
现在就是3分区的,
我想请问:指定的flash地址,是不是必须和分区的起始地址对应。
APP1烧写到app2不运行、APP2烧写到app1不运行。
可不可以APP1、APP2随便烧写?
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-9-11 13:46:58 | 显示全部楼层
回复【3楼】oooiou:
---------------------------------
你的bootloader  跳转的肯定是指定地址。。。。


所以程序运行起始地址被写死了


运行区被固定了
学无止境
回复

使用道具 举报

17

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2013-9-4
在线时间
18 小时
 楼主| 发表于 2015-9-11 13:53:23 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
怎么写灵活一些?还请赐教

我的程序

1.编译的时候MDK指定了flash地址,

2.flash设置了偏移地址

3.boot中,跳转地址也是固定的。
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-9-11 16:13:48 | 显示全部楼层
A 区 :  bootloader区

B区 :   运行区及升级区

C区 : 备份区


远程发送命令,告知终端需要升级,此时从B区跳到A区,把当前APP拷贝到C区,接收新APP并写入到B区,如果中途失败,则把C区复制到B区,并跳到B区运行 

如果成功,也直接跳到B区运行
学无止境
回复

使用道具 举报

17

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2013-9-4
在线时间
18 小时
 楼主| 发表于 2015-9-11 17:32:17 | 显示全部楼层
回复【6楼】jermy_z:
---------------------------------
嗯,

多谢。

现在就是用这种。
回复

使用道具 举报

17

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2013-9-4
在线时间
18 小时
 楼主| 发表于 2015-9-11 21:00:46 | 显示全部楼层
回复【8楼】aozima:
---------------------------------
好的 多谢。flash大 所以分区大。没特殊作用
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 21:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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