stm32远程升级

2019-07-21 05:15发布

设计思路如下:开始判断电池备份区域寄存器的值:等于就清除寄存器的值接着升级程序,升级程序后软件复位。不等于则不升级,执行按键中断。按键中断程序:中断触发,写寄存器的值,复位。现在的问题是:执行第一次远程升级成功,那么怎样接着第二次升级呢?就是说现在永远跑在新的程序里,如何跳出来接着第二次,第三次.....升级呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
那年一路向北
1楼-- · 2019-07-22 00:54
这是引导程序
jxchen
2楼-- · 2019-07-22 05:16
very good!!!!!!!!!!!!
backup2k
3楼-- · 2019-07-22 08:11
先要区分两个概念,这样的程序一般分两部分,引导程序(BootLoader)+功能程序(就是你的系统实际要完成的功能)。
设计思路是:功能程序在执行时如果收到服务器的系统更新信号则自动跳到引导程序。
cmz
4楼-- · 2019-07-22 11:40
 精彩回答 2  元偷偷看……
holy404290384
5楼-- · 2019-07-22 11:56
按照你的程序逻辑,在主程序中等待远程升级的指令,收到指令后,更改备份寄存器值,然后复位。您的第一次成功是怎么做的呢?
那年一路向北
6楼-- · 2019-07-22 12:42
本帖最后由 那年一路向北 于 2019-2-18 10:59 编辑
holy404290384 发表于 2019-2-18 10:03
按照你的程序逻辑,在主程序中等待远程升级的指令,收到指令后,更改备份寄存器值,然后复位。您的第一次成 ...

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

一周热门 更多>