OpenEdv-开源电子网

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

stm32远程升级

[复制链接]

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-12-23
在线时间
18 小时
发表于 2019-2-15 10:06:55 | 显示全部楼层 |阅读模式
10金钱
设计思路如下:开始判断电池备份区域寄存器的值:等于就清除寄存器的值接着升级程序,升级程序后软件复位。不等于则不升级,执行按键中断。按键中断程序:中断触发,写寄存器的值,复位。现在的问题是:执行第一次远程升级成功,那么怎样接着第二次升级呢?就是说现在永远跑在新的程序里,如何跳出来接着第二次,第三次.....升级呢?

最佳答案

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

现在已重新设计。程序如果更新,上电或复位的时候同时按键按下,等待服务器响应。不按则不更新。谢谢大家提供的思路。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-12-23
在线时间
18 小时
 楼主| 发表于 2019-2-15 15:25:15 | 显示全部楼层
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-12-23
在线时间
18 小时
 楼主| 发表于 2019-2-15 10:06:56 | 显示全部楼层
现在已重新设计。程序如果更新,上电或复位的时候同时按键按下,等待服务器响应。不按则不更新。谢谢大家提供的思路。
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2019-2-15 14:01:42 | 显示全部楼层
不太明白你的意思。。难道重启以后不会先跑自己写的bootloader。然后在引导进入App程序?
回复

使用道具 举报

13

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2018-6-18
在线时间
27 小时
发表于 2019-2-15 15:13:59 | 显示全部楼层
肯定要用bootloader吧,不然你叫程序自杀么。。
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-12-23
在线时间
18 小时
 楼主| 发表于 2019-2-15 15:21:24 | 显示全部楼层
这是主函数
1550215035(1).png
1550215096(1).png
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-12-23
在线时间
18 小时
 楼主| 发表于 2019-2-15 15:22:59 | 显示全部楼层
xiedonghui258 发表于 2019-2-15 14:01
不太明白你的意思。。难道重启以后不会先跑自己写的bootloader。然后在引导进入App程序?

开机后会先判断寄存器的值,然后再跑bootloader程序
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-12-23
在线时间
18 小时
 楼主| 发表于 2019-2-15 15:25:56 | 显示全部楼层
这是引导程序
1550215485(1).png
回复

使用道具 举报

1

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2017-12-23
在线时间
7 小时
发表于 2019-2-15 20:46:41 | 显示全部楼层
very good!!!!!!!!!!!!
回复

使用道具 举报

6

主题

315

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1669
金钱
1669
注册时间
2018-1-29
在线时间
160 小时
发表于 2019-2-15 21:53:15 | 显示全部楼层
先要区分两个概念,这样的程序一般分两部分,引导程序(BootLoader)+功能程序(就是你的系统实际要完成的功能)。
设计思路是:功能程序在执行时如果收到服务器的系统更新信号则自动跳到引导程序。
回复

使用道具 举报

40

主题

250

帖子

0

精华

高级会员

Rank: 4

积分
854
金钱
854
注册时间
2016-11-13
在线时间
705 小时
发表于 2019-2-17 11:55:26 来自手机 | 显示全部楼层
backup2k 发表于 2019-2-15 21:53
先要区分两个概念,这样的程序一般分两部分,引导程序(BootLoader)+功能程序(就是你的系统实际要完成的 ...

就是这样
回复

使用道具 举报

3

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
金钱
434
注册时间
2013-3-18
在线时间
82 小时
发表于 2019-2-18 10:03:21 | 显示全部楼层
按照你的程序逻辑,在主程序中等待远程升级的指令,收到指令后,更改备份寄存器值,然后复位。您的第一次成功是怎么做的呢?
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-12-23
在线时间
18 小时
 楼主| 发表于 2019-2-18 10:57:48 | 显示全部楼层
本帖最后由 那年一路向北 于 2019-2-18 10:59 编辑
holy404290384 发表于 2019-2-18 10:03
按照你的程序逻辑,在主程序中等待远程升级的指令,收到指令后,更改备份寄存器值,然后复位。您的第一次成 ...

第一次是按键触发中断,在中断程序里更改寄存器的值 ,复位后,程序再判断,此时寄存器的值已更改,即可更新程序。如果没有触发按键,则不更新。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-5-11
在线时间
13 小时
发表于 2019-12-10 17:38:37 | 显示全部楼层
哈哈哈哈哈哈哈啊哈哈哈哈
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 05:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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